Untuk membuat User Account ada beberapa aturan yang berubah semenjak Oracle Database 12c, yaitu

  1. About Common Users and Local Users
  2. Create a New User Account dengan minimum database privileges
  3. Restriction ketika membuat user baru
  4. Assignment of User Password
  5. Default Tablespace untuk User
  6. Tablespace Quota untuk User
  7. Temporary Tablespace untuk User
  8. Profiles untuk User

About Common Users and Local Users

Dalam sebuah multitenant environtment terdiri dari Common users and application common (CDB), dan local users spesific ke Plugging in Database (PDB)

plugging in database (PDB)

Secara default kita akan dibuatkan Plugging in Database ketika di install seperti berikut lognya:

Connect to Oracle Database using one of the connect strings:
     Pluggable database: sandbox.oraclexe-18c/XEPDB1
     Multitenant container database: sandbox.oraclexe-18c
Use https://localhost:5500/em to access Oracle Enterprise Manager for Oracle Database XE
oracle_1  | #########################
oracle_1  | DATABASE IS READY TO USE!
oracle_1  | #########################
[root@sandbox ~]#

Untuk CDB atau Root Database seperti yang kita gunakan pada saat login yaitu XE, sedangkan untuk PDB yang kita bisa gunakan adalah XEPDB1 untuk setiap edition ini mungkin berbeda jadi tinggal sesuaikan saja. atau klo mau buat sendiri juga bisa, coba baca disini

Untuk membuat user di CDB, ada beberapa aturan seperti

  1. Harus connect ke CDB ROOT dan user yang digunakan granted create user pada system privileges
  2. Nama pada user yang akan dibuat harus menggunakan prefix c## atau C## contohnya c##hr_admin
  3. Baca lebih lanjut disini

Sedangkan untuk membuat Local User di PDB, seperti berikut:

  1. Harus connect ke Plugging in Database dan user yang digunakan granted create user pada system privilegesnya
  2. Kebalikan dari CDB, tidak boleh menggunakan prefix c## contohsnya seperti hr_admin
  3. Baca selengkapnya disini

Create a New User Account dengan minimum database privileges

Berikut adalah contoh untuk membuat user minimal atribute di Oracle database

CREATE USER <your-username> 
 IDENTIFIED BY <your-password> 
 DEFAULT TABLESPACE <your-tablespace> 
 QUOTA <number of quota> <type size of quota> ON users;

Setelah user terbuat, kita harus berikan ijin access menggunakan

grant create session to <your-new-username>

Restriction ketika membuat user baru

Untuk membuat user ada beberapa ketentuan seperti

  1. Uniqueness of User Names
  2. Case Sensitivity for User Names
  3. Tidak boleh menggunakan keywork yang sudah ada
  4. Untuk penamaan username sebagikan menggunakan nama dari aplikasi yang akan dibuat sebagai contoh sales, hrd, perputakaan dan lain-lain.

Assignment of User Password

Pemberian password di Oracle ada ketentuan minimumnya seperti:

  1. Passwords can be at most 30 bytes long
  2. Atau berikut adalah beberapa rekomendasi securing password baca disini

Default Tablespace untuk User

Tablespace yaitu logical storage container (wadah) segments. dan Segments adalah database object seperti table, index, sequences dan lain-lain yang meng-consume storage space.

data files & tablespaces

Tablespace Quota untuk User

Kita bisa melimit suatu storage space dalam user yang akan dibuat dengan menggunakan TABLESPACE QUOTA dan juga memberikan QUOTA UNLIMITED artinya tidak kita batas.

Setelah kita membahas semua attributenya, berikut adalah cara membuat user yang sederhana:

  1. Login sebagai system di PDB sebagai contoh XEPDB1
    sqlplus system/passwordnyaOracle18c@XEPDB1
    
  1. Kemudian buat user dengan perintah berikut:

  2. Kemudian berikan access untuk login dengan perintah berikut:

  3. Kemudian coba logout dari user system@XEPDB1, kemudian login lagi dengan user yang baru dibuat seperti berikut:

    conn toko_online/toko@XEPDB1
    

Maka hasilnya seperti berikut:

sqlplus system/passwordnyaOracle18@XEPDB1

SQL*Plus: Release 18.0.0.0.0 - Production on Thu Mar 11 06:23:48 2021
Version 18.4.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.

Last Successful login time: Thu Mar 11 2021 05:27:01 +00:00

Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0

SQL> create user toko_online
    identified by toko
    default tablespace users
    quota 10 M on users
    account unlock;

User created.

SQL> grant   create session
to toko_online;

Grant succeeded.

SQL> conn toko_online/toko@XEPDB1
Connected.
SQL> select user from dual;

USER
--------------------
TOKO_ONLINE