U Make it Easy as 1,2,3,4

1 Think, 2 Do, 3 Words, 4 You….. I am Happy

Administrasi User March 25, 2009

Filed under: Oracle10g — Princess Frog @_@ @ 4:47 AM

nah buat yg baru mau baca nich artikel.. mending baca dulu deh yang judulna Administrasi Profile baru bis gitu baca yg ini…

biar tau alurnya dulu.. okehhhh..

tapi kalo udah baca yg profile gpp langsung pantengin ini artikel pasti wis ngerti.. tar kalo gk ngerti tanya yach…

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 ROSE dan passwordnya ROSELINDA):
SQL> conn system
SQL> create user ROSE identified by ROSELINDA;

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=’ROSE’;
Ini hasilnya:
USERNAME: ROSE
ACCOUNT_STATUS : OPEN
EXPIRY_DATE :
DEFAULT_TABLESPACE : USERS
TEMPORARY_TABLESPACE : TEMP
PROFILE : DEFAULT
INITIAL_RSRC_CONSUMER_GROUP : DEFAULT_CONSUMER_GROUP

Untuk melihat default tablespace dan default temporary tablespace dari suatu database, silahkan lihat di artikel yg judulna Administrasi Tablespace.>> tetep masih di blogQ ^_^

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 ROSE
IDENTIFIED BY ROSELINDA
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 ROSE identified by LINDA;

Grant User

Setelah user dibuat, user tersebut tidak bisa melakukan koneksi sebelum diberi grant (hak) untuk connect ke database.
SQL> conn ROSE/ROSELINDA
ERROR:
ORA-01045: user ROSE 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 ROSE;

Setelah itu, dengan user rohmad tersebut, mari kita coba membuat table
SQL> conn ROSE/ROSELINDA
SQL> create table tab_test (no number);
ERROR at line 1:
ORA-01031: insufficient privilege
s

OO… ternyata user ROSE belum punya priviledges untuk membuat table. Coba beri privilege ke user ROSE agar bisa membuat tabel
SQL> conn system;
SQL> grant create table to ROSE;

Sekarang buat table
SQL> conn ROSE/ROSELINDA
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 ROSE adalah tablespace USERS, ternyata ROSE masih belum bisa membuat table (menulis) di tablespace USERS. Beri quota ke user ROSE, bisa unlimited ataupun di-specify besarannya. Contoh, beri quota unlimited:
SQL> conn system;
SQL> alter user ROSE quota unlimited on USERS;

Coba lagi, dan berhasil …
SQL> conn ROSE/ROSELINDA
SQL> create table tab_test (no number);
Table created.

Agar bisa membuat index, user rose 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 ROSE
SQL> conn system
SQL> grant RESOURCE to ROSE;

Umumnya, cukup dengan memberi grant CONNECT dan RESOURCE ke user yang baru dibuat, user tersebut sudah bisa melakukan banyak pekerjaan.
SQL> create user ROSE identified by ROSELINDA;
SQL> grant connect to ROSE;
SQL> grant RESOURCE to ROSE
;

Menghapus User

SQL> drop user rose;

Kalau user tersebut mempunyai object (misalnya tabel), maka akan muncul error berikut
ORA-01922: CASCADE must be specified to drop ‘rose’

Kalau begitu, tambahkan parameter CASCADE untuk sekaligus menghapus semua object yang dimiliki user tersebut
SQL> drop user rose CASCADE;

selesai deh seputar userna ^_^ capek ngetik …

 

2 Responses to “Administrasi User”

  1. Newnx Says:

    ow ow ow
    sip lah bu guru
    hmm mo tanya dong… klo mo nge grant role ke banyak user sekaligus gemana? kalo kayak di lab itu kan ada ratusan user yang harus punya role yang sama, masa harus satu satu :p mohon bimbingannya ya bu guru

    • Roselinda Says:

      hehehe.. ya pertama pasti bwt rolenya dulu.. trus kasiin privilegenya. nah bis gitu bwt user yang katanya ratusan misalnya user Pnimpanjang itu.. tpi pake script. ambil datanya dari kolom NIM yang ada di tabel Mahasiswa misalnya. yawda nanti scriptnya dijalanin deh.. igt jgn lupa jalaninya utk create user harus user yg punya privilege create user lho. trus utk kasi role nya tambahin aja didlm scriptnya “grant role apa to user apa” nah udah deh tinggl dijlnin sekali gk perlu dah ngasiin 1 persatu. itu sih cara yg sempet aku tau. cuma bth 1 file script aja kok..hehehe


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s