• Ingat Waktu

  • MY FACEBOOK

  • Online

  • Online 2

  • Blog Gue

  • Situs – Situs Seru

  • Flag Counter

Adminitrasi USER pada ORACLE

Administrasi User

Waktu kita membuat database, secara otomatis Oracle membuat user sys dan system. User sys bisa melakukan apa saja, oleh karenanya disebut sebagai super user. User system digunakan untuk administrasi database sehari-hari, misalnya membuat user, tablespace, dan lain-lain. Kalau user sys bisa melakukan semuanya, kenapa mesti ada user system? Ya tentu saja, pertimbangannya adalah masalah security. Oke, mari kita mulai membahas administrasi user di database Oracle.

Create (membuat) user

Perintah membuat user yang paling sederhana adalah (contoh, saya akan membuat user dengan nama Yusak dan passwordnya 1050902):

SQL> conn system
SQL> create user yusak identified by 10509302;

Karena tidak di-specify, maka atribut-atribut yang lainnya memakai nilai default. Untuk melihatnya lihat di view dba_users

SQL> select * from dba_users where username='yusak';

Ini hasilnya:

USERNAME: YUSAK
ACCOUNT_STATUS : OPEN
EXPIRY_DATE :
DEFAULT_TABLESPACE : USERS
TEMPORARY_TABLESPACE : TEMP
PROFILE : DEFAULT
INITIAL_RSRC_CONSUMER_GROUP : DEFAULT_CONSUMER_GROUP

Berikut ini contoh membuat user dengan men-specify default tablespace, quota pemakaian di tablespace, dan temporary tablespace (ini contoh yang paling sering digunakan):

 

SQL> CREATE USER yusak
IDENTIFIED BY 10509302
DEFAULT TABLESPACE users
QUOTA unlimited ON users
QUOTA 500K ON data_ts
TEMPORARY TABLESPACE temp;


Alter (mengubah) user

Semua atribut user bisa diubah (alter) kecuali username itu sendiri. Secara umum perintah alter sama dengan create, hanya mengganti kata create menjadi alter. Contoh:

SQL> alter user yusak identified by 101010;

Grant User

Setelah user dibuat, user tersebut tidak bisa melakukan koneksi sebelum diberi grant (hak) untuk connect ke database.

SQL> conn yusak/101010
ERROR:
ORA-01045: user yusak lacks CREATE SESSION privilege; logon denied

Berikut ini perintah untuk memberi grant ke user agar bisa connect ke database

SQL> conn system;
SQL> grant connect to yusak;

Setelah itu, dengan user yusak tersebut, mari kita coba membuat table.

SQL> conn yusak/101010
SQL> create table tab_test (no number);
ERROR at line 1:
ORA-01031: insufficient privileges

OO… ternyata user yusak belum punya priviledges untuk membuat table. Coba beri privilege ke user rohmad agar bisa membuat tabel.

SQL> conn system;
SQL> grant create table to yusak;

Sekarang buat table

SQL> conn yusak/101010

SQL> create table tab_test (no number);
ERROR at line 1:
ORA-01950: no privileges on tablespace 'USERS'

OO… ternyata error. Walaupun default tablespace untuk user YUSAK adalah tablespace USERS, ternyata YUSAK masih belum bisa membuat table (menulis) di tablespace USERS. Beri quota ke user YUSAK, bisa unlimited ataupun di-specify besarannya. Contoh, beri quota unlimited:

SQL> conn system;
SQL> alter user yusak quota unlimited on USERS;

Coba lagi, dan berhasil …

SQL> conn yusak/101010
SQL> create table tab_test (no number);
Table created.

Agar bisa membuat index, user yusak harus diberi grant. Demikian juga untuk bisa membuat view. Wow… dapat anda bayangkan, berapa banyak privilege yang mesti gita beri (grant)? Untuk mengatasi itu, Oracle membuat role. Role berisi beberapa (banyak) privilege. Contoh, role RESOURCE berisi grant untuk membuat table, membuat index, quota unlimited di default tablespace, dan lain-lain.

Berikut ini perintah untuk memberi hak (grant) role RESOURCE ke user YUSAK

SQL> conn system
SQL> grant RESOURCE to yusak;

Umumnya, cukup dengan memberi grant CONNECT dan RESOURCE ke user yang baru dibuat, user tersebut sudah bisa melakukan banyak pekerjaan.

SQL> create user YUSAK identified by 10509302;
SQL> grant connect to yusak;
SQL> grant RESOURCE to yusak;

Menghapus User

SQL> drop user yusak;

Kalau user tersebut mempunyai object (misalnya tabel), maka akan muncul error berikut

ORA-01922: CASCADE must be specified to drop 'yusak'

Kalau begitu, tambahkan parameter CASCADE untuk sekaligus menghapus semua object yang dimiliki user tersebut

SQL> drop user yusak CASCADE;

REFFRENSI


2 Responses

  1. Trims cak..
    Very Informative 🙂

  2. mudah dimengerti
    good tutor.. like this

Leave a comment