Mengelola User Di Oracle TimesTen


Hari ini saya mendapatkan sebuah trophy yang mengingatkan bahwa usia blog ini sudah mencapai lima tahun:

Happy anniversary!

Happy anniversary!

Lima tahun yang lalu, saya berhenti menulis blog subjektif yang penuh lelucon, komentar dan opini pribadi :)  Saya kemudian mendaftar di WordPress.com dan membuat blog TheSolidSnake ini.  Saya mulai belajar menulis secara serius dan objektif.   Apalagi, seorang sosok eksentrik di Indonesia, R*y S*ryo, pernah meremehkan blogger dengan menyatakan bahwa: “Blog tidak bertanggung jawab, bahkan blogger itu tukang tipu”.  Oleh sebab itu, saya tidak ingin menjadi blogger penerjemah yang hanya menerjemahkan dokumentasi dari bahasa Inggris menjadi bahasa Indonesia.   Visi saya saat itu adalah menuliskan informasi yang sulit diperoleh dalam bahasa Indonesia atau sesuatu yang menarik bagi saya.   Kini, hasilnya setelah lima tahun, adalah sebuah blog yang membosankan dan terkadang sulit dicerna.  Tulisan pertama saya di blog ini adalah mengenai salah satu produk Oracle yang sangat populer di lingkungan kerja, Oracle Database.  Hari ini saya kembali lagi bereksperimen dengan produk database lainnya dari Oracle yang bernama Oracle TimesTen.

Oracle TimesTen mengenali dua jenis user, yaitu internal user dan external user.   Seorang external user yang men-install TimesTen boleh melakukan apa saja terhadap database tersebut sehingga ia disebut juga sebagai instance administrator.   Untuk melihat seluruh user yang ada, saya dapat menggunakan perintah SQL berikut:

C:\>ttIsql LATIHAN

Command> SELECT * FROM SYS.ALL_USERS;
< SYS, 0, 2013-09-13 22:36:07.442000 >
< TTREP, 2, 2013-09-13 22:36:07.442000 >
< SYSTEM, 3, 2013-09-13 22:36:07.442000 >
< GRID, 4, 2013-09-13 22:36:07.442000 >
< SOLIDSNAKE, 10, 2013-09-13 22:36:07.442000 >
5 rows found.

Internal user adalah user yang dibuat dan disimpan di dalam database TimesTen itu sendiri melalui perintah SQL CREATE USER.   Pada hasil query di atas, terlihat bahwa Oracle TimesTen secara otomatis membuat 4 internal user, yaitu SYS, TTREP, SYSTEM dan GRID.   Mereka adalah user yang dipakai oleh TimesTen itu sendiri.

External user adalah user yang disimpan di sistem operasi.   Pada hasil query di atas, user SOLIDSNAKE adalah external user.   TimesTen tidak menyimpan password untuk external user karena mereka dikelola oleh sistem operasi.   TimesTen juga tidak meminta password untuk external user karena sebelum menjalankan TimesTen pastinya mereka sudah login terlebih dahulu di sistem operasi.

Bila saya melakukan koneksi tanpa memberikan atribut UID (nama user), maka user yang dipakai adalah external user dengan nama yang sama sesuai dengan user di sistem operasi.   Hanya external user selaku instance administrator yang boleh melakukan koneksi ke database untuk pertama kalinya (ingat bahwa koneksi pertama kali akan memindahkan file database ke memori).    Sebagai contoh, pada perintah di atas, saya melakukan koneksi ke database sebagai instance administrator karena saya sedang login di Windows 7 sebagai user yang men-install Oracle TimesTen.

Untuk membuat sebuah internal user baru, saya dapat menggunakan perintah SQL seperti berikut ini:

C:\>ttIsql LATIHAN

Command> CREATE USER solid IDENTIFIED BY "snake";

User created.

Command> GRANT CREATE SESSION TO solid;

Untuk mendaftarkan sebuah external user baru, saya dapat menggunakan perintah SQL seperti berikut ini:

C:\>ttIsql LATIHAN

Command> CREATE USER solid IDENTIFIED EXTERNALLy;

User created.

Untuk login sebagai user solid, saya dapat memberikan atribut UID yang mewakili nama user dan PWD yang mewakili password, seperti berikut ini:

C:\>ttIsql -connStr "DSN=LATIHAN;UID=solid;PWD=snake"

Sama seperti di Oracle Database, user memiliki schema masing-masing.   User solid tidak dapat mengakses tabel milik user liquid dan sebaliknya.   Pengguna yang berlatar belakang MySQL mungkin dapat membayangkan bahwa sebuah user di TimesTen sebagai sebuah user plus sebuah database dengan nama yang sama bila di MySQL.

Setiap user dibatasi oleh privilege yang dimilikinya.   Privilege ADMIN adalah sebuah system privilege yang merupakan hak akses paling tinggi.   User yang memiliki privilege ini boleh melakukan apa saja!   Secara default, hanya instance administrator dan user internal dari TimesTen yang memiliki privilege ini.   Nantinya, instance administrator boleh memberikan hak ADMIN ke user lain bila dirasa perlu.

Untuk melihat privilege yang dimiliki oleh user, saya memberikan query SQL berikut ini:

C:\>ttIsql LATIHAN

Command> SELECT * FROM SYS.DBA_SYS_PRIVS;
< SYS, ADMIN, YES >
< SYSTEM, ADMIN, YES >
< SOLIDSNAKE, ADMIN, YES >
< SOLID, CREATE SESSION, NO >
4 rows found.

Terlihat bahwa user SOLIDSNAKE memiliki privilege ADMIN sementara user SOLID memiliki privilege CREATE SESSION.   Seorang user minimal harus memiliki privilege CREATE SESSION agar bisa melakukan koneksi ke database.

Instance administrator SOLIDSNAKE dapat memberikan hak akses ADMIN ke SOLID dengan memberikan perintah berikut ini:

Command> GRANT ADMIN TO SOLID;

Command> SELECT * FROM SYS.DBA_SYS_PRIVS;
< SYS, ADMIN, YES >
< SYSTEM, ADMIN, YES >
< SOLIDSNAKE, ADMIN, YES >
< SOLID, CREATE SESSION, NO >
< SOLID, ADMIN, YES >
5 rows found.

Untuk membuang privilege ADMIN milik user SOLID, saya dapat memberikan perintah berikut ini:

Command> REVOKE ADMIN FROM SOLID;

Command> SELECT * FROM SYS.DBA_SYS_PRIVS;
< SYS, ADMIN, YES >
< SYSTEM, ADMIN, YES >
< SOLIDSNAKE, ADMIN, YES >
< SOLID, CREATE SESSION, NO >
4 rows found.

Perihal Solid Snake
I'm nothing...

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: