Security database: Administrasi Profile

Untuk alasan keamanan, pemakaian resource oleh user database perlu dibatasi. Selain itu, otorisasi (password) user juga perlu diperketat. Di database Oracle, pembatasan itu dilakukan oleh profile.

Berikut ini informasi profile (beserta parameter-patameternya) yang ada di database:

SQL> conn system
SQL> SELECT * FROM DBA_PROFILES ORDER BY PROFILE,RESOURCE_TYPE;
PROFILE    RESOURCE_NAME                    RESOURCE LIMIT
---------- -------------------------------- -------- ----------
DEFAULT    COMPOSITE_LIMIT                  KERNEL   UNLIMITED
DEFAULT    SESSIONS_PER_USER                KERNEL   UNLIMITED
DEFAULT    PRIVATE_SGA                      KERNEL   UNLIMITED
DEFAULT    CONNECT_TIME                     KERNEL   UNLIMITED
DEFAULT    IDLE_TIME                        KERNEL   UNLIMITED
DEFAULT    LOGICAL_READS_PER_CALL           KERNEL   UNLIMITED
DEFAULT    LOGICAL_READS_PER_SESSION        KERNEL   UNLIMITED
DEFAULT    CPU_PER_CALL                     KERNEL   UNLIMITED
DEFAULT    CPU_PER_SESSION                  KERNEL   UNLIMITED
DEFAULT    PASSWORD_VERIFY_FUNCTION         PASSWORD NULL
DEFAULT    PASSWORD_REUSE_MAX               PASSWORD UNLIMITED
DEFAULT    PASSWORD_REUSE_TIME              PASSWORD UNLIMITED
DEFAULT    PASSWORD_LIFE_TIME               PASSWORD UNLIMITED
DEFAULT    FAILED_LOGIN_ATTEMPTS            PASSWORD 10
DEFAULT    PASSWORD_LOCK_TIME               PASSWORD UNLIMITED
DEFAULT    PASSWORD_GRACE_TIME              PASSWORD UNLIMITED

Ketika kita membuat database, by default Oracle membuat profile dengan nama DEFAULT. Ketika kita membuat user tanpa menyebutkan profile-nya, maka user tersebut akan di-assign ke profile DEFAULT.

Membuat profile

Contoh membuat profile:

SQL> CREATE PROFILE profileku LIMIT
   SESSIONS_PER_USER          UNLIMITED
   CPU_PER_SESSION            UNLIMITED
   CPU_PER_CALL               3000
   CONNECT_TIME               45
   LOGICAL_READS_PER_SESSION  DEFAULT
   LOGICAL_READS_PER_CALL     1000
   PRIVATE_SGA                15K
   COMPOSITE_LIMIT            5000000;

Mengedit profile

Formatnya sama persis dengan CREATE profile, hanya ganti kata CREATE menjadi ALTER. Contoh:

SQL> ALTER PROFILE profileku LIMIT
   FAILED_LOGIN_ATTEMPTS 	5
   PASSWORD_LIFE_TIME 		60
   PASSWORD_REUSE_TIME 		60
   PASSWORD_REUSE_MAX 		5
   PASSWORD_LOCK_TIME 		1/24
   PASSWORD_GRACE_TIME 		10;

Assign profile ke user

Misalkan saya ingin melihat profile dari user TEST

SQL> select USERNAME,PROFILE from dba_users
where USERNAME='TEST';
USERNAME                       PROFILE
------------------------------ ----------
TEST                           DEFAULT

Saya akan mengubah profile user TEST dari DEFAULT ke PROFILEKU

SQL> alter user test profile PROFILEKU;

Menghapus

Untuk menghapus profile PROFILEKU, gunakan perintah berikut:

SQL> drop profile PROFILEKU;
ERROR at line 1:
ORA-02382: profile PROFILEKU has users assigned, cannot drop without CASCADE

OO… Error. Profile PROFILEKU ada yang makai, yaitu user TEST. Kalau begitu tambahkan argument CASCADE:

SQL> drop profile PROFILEKU CASCADE;

Setelah profile dihapus, user yang di-assign ke profile tersebut akan dikembalikan ke profile DEFAULT.

Keterangan

Resource parameter:

  • SESSIONS_PER_USER
    Jumlah session paling banyak yang bisa digunakan secara bersamaan (concurrent).

 

  • CPU_PER_SESSION
    Maksimal CPU per session. Satuan: 10 ms (hundredth of seconds).

 

 

  • CPU_PER_CALL
    Maksimal CPU per call (parse, execute, atau fetch). Satuan: 10 ms (hundredths of seconds).

 

 

  • CONNECT_TIME
    Maksimal waktu untuk koneksi. Satuan: menit.

 

 

  • IDLE_TIME
    Maksimal waktu dalam status INACTIVE (idle). Satuan: menit.

 

  • LOGICAL_READS_PER_SESSION
    Maksimal block yang boleh dibaca per session, termasuk block dari memori dan disk.
  • LOGICAL_READS_PER_CALL
    Maksimal block yang boleh dibaca per call (parse, execute, atau fetch).
  • PRIVATE_SGA
    Maksimal memory untuk PRIVATE AREA. Hanya berlaku pada “shared server”. Satuan: bytes.
  • COMPOSITE_LIMIT
    Total resource cost per session. Satuan: service. Dihitung dari jumlah CPU_PER_SESSION, CONNECT_TIME, LOGICAL_READS_PER_SESSION, dan PRIVATE_SGA.Password Parameter:

    • FAILED_LOGIN_ATTEMPTS
      Jumlah maksimal berapa kali salah login (password). Setelah mencapai FAILED_LOGIN_ATTEMPTS, user yang bersangkutan akan di-lock.
    • PASSWORD_LIFE_TIME
      Umur password, dalam satuan hari. Password harus diganti sebelum mencapai PASSWORD_LIFE_TIME.
    • PASSWORD_GRACE_TIME (satuan: hari)
      Bila setelah mencapai PASSWORD_LIFE_TIME, namun user masih belum mengubah passwordnya, maka user akan diberi peringatan selama PASSWORD_GRACE_TIME. Bila telah mencapai PASSWORD_GRACE_TIME namun user masih belum mengubah passwordnya, maka password akan expired dan tidak bisa digunakan untuk login. Bila PASSWORD_GRACE_TIME tidak disetting, maka nilainya UNLIMITED, artinya user akan tetap bisa login meskipun telah mencapai PASSWORD_LIFE_TIME.
    • PASSWORD_REUSE_TIME (satuan hari) dan PASSWORD_REUSE_MAX
      Kedua parameter ini dipakai bersamaan. PASSWORD_REUSE_TIME menyatakan berapa hari (sejak password diganti) password boleh dipakai lagi. PASSWORD_REUSE_MAX menyatakan berapa kali password harus berubah (berganti) sebelum memakai password lama yang dulu pernah dipakai itu.
    • PASSWORD_LOCK_TIME (satuan hari)
      Menyatakan berapa hari user akan di-lock setelah gagal login.
    • PASSWORD_VERIFY_FUNCTION

    Refensi

  • Oracle┬« Database SQL Reference 10g Release 2 (10.2)
    CREATE PROFILE
This entry was posted in Administration, security and tagged , , , , , , , , . Bookmark the permalink.

7 Responses to Security database: Administrasi Profile

  1. mierz says:

    waaa,pembahasannya bagus banget, tapi aku cuma mudeng dikit2 aja…
    gak begitu familiar dengan oracle seh, hehe..
    lam kenal mas…

  2. arie says:

    pak rohmat, saya mo tanya…. tutorial2 yang ada di sini… semuanay harus menggunakan login sebagai SYS ato SYSTEM ya pak??

  3. rohmadne says:

    Menggunakan user SYS bisa, SYSTEM bisa, user biasa yang punya privilege DBA juga bisa.

  4. teo says:

    Halo. Saya cuma pengen ucapkan terima kasih kepada siapapun yang telah membangun web ini. Site ini adalah site terbaik yang membahas tentang oracle yang saya temukan. Sangat lengkap. Makasih banyak yaaa………

  5. Patra E37 says:

    Info ini menarik untuk topik security database. thanks

  6. lukman says:

    pak bagaimana cara buat profil agar user anda hanya bisa login 3 kali,apabila lebih 3 kali maka pasword hrs di reset ulang ,,nok oracle

  7. Satria says:

    Pak Rohmat saya mau coba menawarkan pekerjaan mengenai security pada oracle
    bisa hubungi email saya pak

    major.ruft@gmail.com

Leave a Reply

Your email address will not be published. Required fields are marked *