Pengamanan Basis Data Pengamanan Basis Data (database security) • Merupakan aspek dalam basis data yang mengacu pada upaya-upaya pengamanan dari akses yang berbahaya/merugikan Pelanggaran akses secara sengaja • Pembacaan data yang tidak diijinkan • Pengubahan data yang tidak diijinkan • Penghapusan/perusakan data yang tidak diijinkan Pengamanan Basis Data • Fisik Lokasi sistem komputer harus aman dan terlindungi dari jangkauan orangorang yg tidak berwenang • Manusia otoritas user harus dibatasi dan diberikan secara hati-hati untuk mengurangi kesempatan pada user yg terdaftar memberikannya pada intruder • Sistem Operasi Sistem pengamanan yang diterapkan oleh suatu Sistem operasi berpengaruh pada pengamanan basis data • Jaringan Perlu mekanisme pangamanan pada software ataupun hardware jaringan • Sistem Basis Data SBD menerapkan pemberian otoritas sebagian / seluruhnya pada objekobjek basis data Jenis otoritas untuk pengaksesan basis data • Disabling Permision • Enabling Permsision Disabling/Enabling permision pada obyek-obyek basis data • Tabel/Relasi Seorang user diijinkan/tdk utk membuat atau mengakses tabel • Indeks Seorang user diijinkan/tdk utk membuat atau menghapus indeks • View Seorang user diijinkan/ tdk utk mengakses view Bentuk otoritas terhadap data yang tersimpan dalam tabel database • • • • Read authorization Insert authorization Update authorization Delete authorization Bentuk otoritas terhadap pendefinisian dan pengubahan skema basis data • Index authorization pembuatan/penghapusan index • Resource authorization pembuatan/penghapusan tabel • Alteration authorization Pengubahan skema tabel dlm bentuk penambahan dan penghapusan field dalam tabel • Drop authorization Penghapusan obyek basis data Pemberian otoritas DBA Update (All) Select (All) A Update (All) D B Insert + Delete (All) C Perintah SQL Pengamanan Basis Data • Pemberian otorisasi • Grant <daftar otoritas> on <nama objek basis data> to <daftar user> – Grant insert on mahasiswa to ali,ani – Grant update (nim,kode_makul) on nilai to ari,diah – Grant select,insert on kuliah to slamet – Grant select on mahasiswa to public Memberi otoritas ke user lain – Grant all on mahasiswa to andi with grant option Perintah SQL Pengamanan Basis Data • Pembatalan otorisasi • Revoke <daftar otoritas> on <nama obyek basis data> from <daftar user> – – – – – Revoke update (nim,kode_makul) on nilai to ari,diah Revoke select,insert on kuliah to slamet Revoke select on mahasiswa to public Revoke insert on mahasiswa to ali Revoke grant option for all on mahasiswa from andi Pemeliharaan Integritas Basis Data • Ditujukan pada upaya-upaya untuk mencegah dan menanggulangi pelanggaran inkonsistensi data secara tidak disengaja Timbulnya inkonsistensi data secara tidak sengaja • Sistem rusak(crash) selama pemrosesan transaksi • Inkonsistensi basis data akibat akses dari banyak user (concurent access) ke basis data yang tidak terjaga dengan baik. • Inkonsistensi basis data karena adanya pendistribusian data ke banyak komputer (client) • Kesalahan lojik (kesalahan aplikasi) yang melanggar integritas yang semestinya dipelihara agar basis data tetap konsisten. Integritas Basis Data Integritas Basis Data berguna untuk menjamin validitas data yang terekam ke dalam basis data Jenis- jenis Integritas Basis Data • Entity Integrity Tidak diperbolehkannya baris data duplikat dalam satu tabel • Domain Integrity Tidak diperbolehkannya item data yang melanggar jangkauan nilai di tiap kolom data • Refererential integrity Menjaga relasi antar tabel • Redundant data integrity Tidak diperbolehkannya data di sebuah tabel terulang di tabel lain • Bussiness rule integrity Data dalam suatu tabel harus memiliki nilai layak dan dapat diterima. Entity Integrity • Sebuah tabel seharusnya berisi baris-baris data yang berbeda dan dapat dibedakan antara satu dengan yang lainnya. Entity Integrity NIM Kode_kul nilai A11.001 A001 D A11.002 A001 B A11.003 B003 A A11.001 A001 D • Kondisi tersebut dapat terjadi karena tidak disengaja ataupun memang disengaja, namun untuk kedua alasan tersebut tidak diperbolehkan melanggar Entity Integrity . • Untuk mencegah pelanggaran Integritas Entitas dari faktor ketidaksengajaan maka harus diterapkan key dari dari tabel tersebut. • Untuk mencegah pelanggaran Integritas Entitas dari faktor kesengajaan maka harus melakukan perubahan struktur tabel. Domain Integrity • Merupakan batasan nilai yang diperbolehkan untuk setiap atribut dalam tabel. – Karakter bebas alfabet(A-Z,a-z),numerik(0-9),tanda baca(.,!;),simbol($,*,%) – Alfanumerik alfabet(A-Z,a-z),numerik(0-9) – Alfabet alfabet(A-Z,a-z) – Numerik numerik(0-9),Contoh: domain Integer bigint:19digit,int:10digit,smallint:5digit(+/- 32768),tinyint:3digit(-128 s/d 127) Domain Integrity Kode_kul nama Sks Smt A001 Daspro D 1 A002 SBD B 12 A003 Alpro A 2 • Pemeliharaan integritas • Pendefinisian skema/struktur tabel • Pemanfaatan property field • Penerapan validasi pada program aplikasi Refererential integrity • Hubungan antar tabel dapat memenuhi aturan referensi yang telah ditetapkan. Kode_kul Nama_kul sks smt A001 Struktur Data 3 5 A002 SBD 3 7 A003 Pemrog. Internet 3 5 NIM Kode_kul nilai A11.001 A001 A A11.002 A004 B A11.003 A003 B Refererential integrity • Untuk menjaga integritas referensial : – Reject – Cascade – Nullify • Penerapan : – Prosedure basis data cascade,nullify – Program aplikasi reject,cascade,nullify Redundant data integrity • Integritas ini menghendaki keberadaan baris data di suatu tabel tidak terulang di tabel lain. • Tujuan: – Efisiensi ruang penyimpanan – Konsistensi Database Redundant data integrity S1-SI Kode_kul S1-TI Nama_kul sks smt A001 Struktur Data 3 5 A002 SBD 3 7 A003 Pemrog. Internet 3 5 Kode_kul Nama_kul sks smt B001 Struktur Data 3 5 B002 SBD 3 7 A003 Pemrog. Internet 3 5 • Terjadinya pelanggaran integritas ini diakibatkan karena kesalahan perencanaan dan pembentukan basis data. Bussiness rule integrity • Data disuatu tabel harus memiliki nilai yang layak dan dapat diterima di tempat sistem basisdata itu diterapkan. NIM Kode_kul nilai A11.001 A001 A A11.002 A004 B A11.003 A003 D A11.003 A004 B Matakuliah A004 hanya boleh diambil jika telah lulus matakuliah A003 Bussiness rule integrity NIM Kode_kul nilai A11.001 A001 A A11.002 A004 B A11.003 A003 D A11.003 A004 B • Pelanggaran integritas misl: ada aturan Matakuliah A004 hanya boleh diambil jika telah lulus matakuliah A003 • Rule sederhana bisa dapat didefinisikan bersama dengan pendefinisian tabel. • Rule yang rumit di terapkan pada program aplikasi