Maintaining Database Security

10.2 Maintaining Database Security

Database security dapat dikelompokkan menjadi 2 (dua) hal :

1. system security

2. data security

System security meliputi akses dan penggunaan database pada level system, semisal username dan password, ruang disk yang dialokasikan ke user, dan operasi system yang diperbolehkan pada user. Database security meliputi akses dan penggunaan database object dan perlakuan yang bisa diberikan oleh user terhadap object dari database.

Tingkat kerusakan suatu database dan sejauh mana database tersebut dapat diperbaiki tergantung pada hal-hal berikut :

1. apakah ada hardware & software alternatif yang dapat digunakan

2. kapan backup terakhir dilakukan

3. waktu yang diperlukan untuk me-restore system

4. apakah data yang hilang dapat dipulihkan

Query Optimization 163

Memelihara keamanan database :

a. Otorisasi (autorization)

Otorisasi merupakan pemberian hak yang memungkinkan seseorang secarah sah dapat mengakses system atau objek (table, view, aplikasi, prosedur, objek). Jenis-jenis otorisasi :

1. Read authorization : otorisasi untuk membaca data saja, tidak untuk memodifikasi data

2. Insert authorization : otorisasi untuk menambah data baru, tidak untuk memodifikasi data

3. Update authorization : otorisasi untuk memodifikasi data, tetapi tidak untuk menghapus data

4. Delete authorization : otorisasi untuk menghapus data (record/tuple), tetapi tidak untuk menghapus relasi/table

5. Index authorization : otorisasi untuk membentuk dan menghapus index

6. Resource authorization : otorisasi untuk membuat table baru

7. Alteration authorization : otorisasi untuk menambah atau menghapus atribut relasi/table

8. Drop authorization : otorisasi untuk menghapus relasi/table

Jika seorang user berubah pekerjaanya dalam menangani data, maka user tersebut otorisasinya harus diubah sesuai dengan deskripsi pekerjaanya yang baru. Dan jika seorang karyawan berhenti bekerja, maka account dan otorisasinya harus dihapus.

Pada lingkungan dengan banyak user, perlu dipelihara keamanan data (security) untuk mengakses dan menggunakan database. Dengan security dari Oracle Server maka kita bisa :

1. Mengontrol akses database

2. Memberikan akses terhadap object spesifik yang ada dalam database

3. Mengkonfirmasi pemberian privilege (hak akses) dalam data dictionary

4. Membuat synonym untuk object database

Dengan adanya otorisasi, database administrator dapat menentukan hak ases dan jenis otorisasi suatu user tergantung tingkat kepentingan terhadap data yang ada untuk menjaga keamanan database.

b. Enkripsi

Enkripsi adalah pengkodean data dengan algoritma khusus sehingga data tidak dapat dibaca oleh program tanpa kunci deskripsi. Selain itu enkripsi juga memproteksi data yang ditransmisikan melalui jalur komunikasi.

Cara mentransmisikan data secara aman melalui jaringan menggunakan cryptosystem terdiri atas :

1. Kunci enkripsi untuk mengenkripsi data (plaintext)

2. Algoritma enkripsi yang dengan kunci enkripsi mentransformasikan plaintext menjadi ciphertext

3. Kunci dekripsi yang mendekripsi ciphertext

4. Algoritma dekripsi yang dengan kunci dekripsi mentransformasikan ciphertext menjadi plaintext

Jenis enkripsi :

1. Symmetric encryption : kunci enkripsi = kunci dekripsi Contoh : Data Encryption Standard (DES) yang dikembangkan IBM

2. Asymmetric encryption : kunci ekripsi ≠ kunci dekripsi Contoh : RSA

Query Optimization 165 Query Optimization 165

Disk drive merupakan komponen yang paling penting untuk penyimpanan data, tetapi komponen ini paling sering mengalami kerusakan, untuk mengatasi hal ini digunakan RAID. RAID terdiri atas array disk, meningkatkan keandalan kinerja dengan cara data striping. Data striping digunakan untuk mensegmentasi data ke partisi dengan ukuran yang sama dan didistribusikan ke banyak disk. Dengan adanya data striping dapat meningkatkan kinerja karena proses I/O dilakukan secara parallel. Kehanda;an database juga dapat ditingkatkan dengan menyimpan informasi redundan ke beberapa disk dengan menggunakan skema prioritas dan skema error correcting. Dalam skema prioritas, setiap byte mempunyai bit paritas yang merekam 1 jika jumlah bit dalam byte itu genap, 0 bila ganjil. Jika jumlah bit dalam byte rusak, paritas baru menjadi tidak cocok dengan paritas tersimpan. Skema error-correcting memiliki dua bit tambahan atau lebih dan dapat merekonstruksi data original jika sebuah bit rusak. Level RAID :

RAID 0 Nonredundant RAID 1 Mirrored RAID 0+1 Nonredundant dan Mirrored RAID 2 Memory-style Error Checking codes RAID 3 Bit-Interleaved Parity RAID 4 Block-Interleaved Parity RAID 5 Block-Interleaved Distributed Parity RAID 6 P+Q

d. Prosedur

Berbagai mekanisme pengamanan data tidak efektif bila tidak dikendalikan dan digunakan sebagaimana mestinya. Untuk menangani hal tersebut maka harus menggunakan prosedur berkaitan dengan mekanisme keamanan. Seperti penentuan prosedur untuk menentukan otorisasi user, password, prosedur recovery dll.

e. View

Merupakan metode pembatasan bagi pengguna untuk mendapatkan model database yang sesuai dengan kebutuhan perorangan. Metode ini dapat menyembunyikan data yang tidak digunakan atau tidak perlu dilihat oleh pengguna.

Untuk menjaga keberadaan system dan menjaganya dari kerusakan maka dilakukan backup. Backup yang dilakukan tidak hanya backup data tetapi juga backup aplikasi dan system operasi. Dalam melakukan backup semua detail harus dispesifikasikan dengan jelas dalam prosedur. Penyimpanan backup dilakukan pada lokasi yang aman (dari segi kemanan fisik seperti tahan api, tahan banjir dan dari pencurian) dan pada lokasi yang berbeda. Waktu backup bisa dilakukan sekaligus pada selang waktu tertentu seperti setiap bulan, setiap minggu atau setiap hari. Tetapi backup lebih sering dilakukan secara berkala / incremental.

g. Recovery

Salah satu cara untuk menjaga keamanan datanbase adalah dengan melakukan recovery. Recovery dilakukan berdasarkan tipe crash yang terjadi pada database, seperti kegagalan media, software dan hardware juga bergantung pada metode recovery yang digunakan oleh DBMS. Prosedur recovery hendaknya selalu diuji untuk menjamin keberhasilanya, idealnya diuji secara regular dalam interval waktu tertentu.