Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara membuat skema baru/pengguna baru di Oracle Database 11g?

Secara umum skema di oracle sama dengan pengguna. Oracle Database secara otomatis membuat skema saat Anda membuat pengguna. File dengan ekstensi file DDL adalah file Bahasa Definisi Data SQL.

Membuat pengguna baru (menggunakan SQL Plus)

Perintah dasar SQL Plus:

  - connect: connects to a database
  - disconnect: logs off but does not exit
  - exit: exists

Buka SQL Plus dan log:

/ as sysdba

Sysdba adalah peran dan seperti "root" di unix atau "Administrator" di Windows. Ia melihat semua, bisa melakukan semua. Secara internal, jika Anda terhubung sebagai sysdba, nama skema Anda akan tampak seperti SYS.

Buat pengguna:

SQL> create user johny identified by 1234;

Lihat semua pengguna dan periksa apakah pengguna johny ada di sana:

SQL> select username from dba_users;

Jika Anda mencoba masuk sebagai johny sekarang, Anda akan mendapatkan kesalahan:

ERROR:
ORA-01045: user JOHNY lacks CREATE SESSION privilege; logon denied

Pengguna untuk masuk membutuhkan setidaknya membuat hak istimewa sesi sehingga kami harus memberikan hak istimewa ini kepada pengguna:

SQL> grant create session to johny;

Sekarang Anda dapat terhubung sebagai pengguna johny:

username: johny
password: 1234

Untuk menyingkirkan pengguna, Anda dapat menghapusnya:

SQL> drop user johny;

Itu adalah contoh dasar untuk menunjukkan cara membuat pengguna. Mungkin lebih kompleks. Di atas kami membuat pengguna yang objeknya disimpan di tablespace default database. Agar database rapi, kita harus menempatkan objek pengguna ke ruangnya sendiri (tablespace adalah alokasi ruang dalam database yang dapat berisi objek skema).

Tampilkan tablespace yang sudah dibuat:

SQL> select tablespace_name from dba_tablespaces;

Buat tablespace:

SQL> create tablespace johny_tabspace
  2  datafile 'johny_tabspace.dat'
  3  size 10M autoextend on;

Buat tablespace sementara (Tablespace sementara adalah alokasi ruang dalam database yang dapat berisi data sementara yang hanya bertahan selama sesi. Data sementara ini tidak dapat dipulihkan setelah kegagalan proses atau instance.):

SQL> create temporary tablespace johny_tabspace_temp
  2  tempfile 'johny_tabspace_temp.dat'
  3  size 5M autoextend on;

Buat pengguna:

SQL> create user johny
  2  identified by 1234
  3  default tablespace johny_tabspace
  4  temporary tablespace johny_tabspace_temp;

Berikan beberapa hak istimewa:

SQL> grant create session to johny;
SQL> grant create table to johny;
SQL> grant unlimited tablespace to johny;

Masuk sebagai johny dan periksa hak istimewa apa yang dia miliki:

SQL> select * from session_privs;

PRIVILEGE
----------------------------------------
CREATE SESSION
UNLIMITED TABLESPACE
CREATE TABLE

Dengan hak membuat tabel, pengguna dapat membuat tabel:

SQL> create table johny_table
  2  (
  3     id int not null,
  4     text varchar2(1000),
  5     primary key (id)
  6  );

Masukkan data:

SQL> insert into johny_table (id, text)
  2  values (1, 'This is some text.');

Pilih:

SQL> select * from johny_table;

ID  TEXT
--------------------------
1   This is some text.

Untuk mendapatkan data DDL Anda dapat menggunakan paket DBMS_METADATA yang "menyediakan cara bagi Anda untuk mengambil metadata dari kamus database sebagai XML atau membuat DDL dan mengirimkan XML untuk membuat ulang objek.".(dengan bantuan dari http://www.dba-Oracle.com/oracle_tips_dbms_metadata.htm )

Untuk tabel:

SQL> set pagesize 0
SQL> set long 90000
SQL> set feedback off
SQL> set echo off
SQL> SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u;

Hasil:

  CREATE TABLE "JOHNY"."JOHNY_TABLE"
   (    "ID" NUMBER(*,0) NOT NULL ENABLE,
        "TEXT" VARCHAR2(1000),
         PRIMARY KEY ("ID")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DE
FAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "JOHNY_TABSPACE"  ENABLE
   ) SEGMENT CREATION IMMEDIATE
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DE
FAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "JOHNY_TABSPACE"

Untuk indeks:

SQL> set pagesize 0
SQL> set long 90000
SQL> set feedback off
SQL> set echo off
SQL> SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) FROM USER_INDEXES u;

Hasil:

  CREATE UNIQUE INDEX "JOHNY"."SYS_C0013353" ON "JOHNY"."JOHNY_TABLE" ("ID")
  PCTFREE 10 INITRANS 2 MAXTRANS 255
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DE
FAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "JOHNY_TABSPACE"

Informasi selengkapnya:

DDL

DBMS_METADATA

Objek skema

Perbedaan antara skema dan pengguna

Hak Istimewa

Membuat pengguna/skema

Membuat tablespace

Perintah SQL Plus



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Penugasan SQL variabel Oracle sederhana

  2. Bagaimana cara Query Nama Database di Oracle SQL Developer?

  3. Cara menulis ke file teks dari Pl/SQL, PLS error 00363

  4. Kesalahan pernyataan Oracle MERGE (ORA-30926)

  5. Keamanan Database Oracle:Audit Database