Pt11-Integrity Dan Security (1)

  • Published on
    19-Jul-2015

  • View
    37

  • Download
    0

Embed Size (px)

Transcript

<p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>Integrity and SecurityPERTEMUAN 11 SISTEM BASIS DATA 2</p> <p>FTI UNIVERSITAS BUDI LUHUR</p> <p>Ganjil 2006 KP157-11.1</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>Integrity </p> <p>1.</p> <p>Integritas berkaitan dengan akurasi dan kebenaran data dalam basis data Sistem yang beredar umumnya lemah dalam mendukung integrity (kebanyakan masih harus diprogram oleh user) Integrity merupakan bahasa hypothelical dalam SQL Contoh: STATUS harus &gt; 0 CREATE INTEGRITY RULE R1 ON INSERT S.STATUS, UPDATE S.STATUS CHECK FOR ALL S (S.STATUS &gt; 0) ELSE REJECT;FTI UNIVERSITAS BUDI LUHURGanjil 2006 KP157-11.2</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>Bila ada kaidah yang saling overlap maka kaidah yang berlaku adalah yang terakhir dinyatakan ke sistem Untuk menghapus kaidah: DROP INTEGRITY RULE R1;</p> <p>FTI UNIVERSITAS BUDI LUHUR</p> <p>Ganjil 2006 KP157-11.3</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>Pembahasan: </p> <p>Biasanya waktu pengecekan cukup jelas, sehingga DBMS dapat mengetahui kapan harus melakukan Biasanya pengecekan dilakukan terhadap situasi yang bersifat umum, sehingga pembatasan dapat dihilangkan Pada dasarnya suatu pelanggaran harus membuat transaksi ditolak Sehingga pada contoh sebelumnya dapat disederhanakan sebagai berikut: Contoh: CREATE INTEGRITY RULE R1 CHECK S.STATUS&gt;0;FTI UNIVERSITAS BUDI LUHURGanjil 2006 KP157-11.4</p> <p>2. Contoh yang lebih rumit, melibatkan nilai TANGGAL dan BULANCREATE INTEGRITY RULE R2 CHECK IS_INTEGER (R.YEAR) AND IS_INTEGER (R.MONTH) AND IS_INTEGER (R.DAY) AND NUM (R.YEAR) BETWEEN 0 AND 99 AND NUM (R.MONTH) BETWEEN 0 AND 12 AND NUM (R.DAY) &gt; 0 AND IF NUM (R.MONTH) IN (1, 3, 5, 7, 8, 10, 12) THEN NUM (R.DAY) &lt; 32 AND IF NUM (R.MONTH) IN (4,6,9,11) THEN NUM (R.DAY) &lt; 31 AND IF NUM (R.MONTH) = 2 THEN NUM (R.DAY) &lt; 30 AND IF NUM (R.MONTH) = 2 AND NUM (R.YEAR) 0 AND MOD (NUM(R.YEAR),4) = 0 THEN NUM(R.DAY) &lt; 29;Ganjil 2006 KP157-11.5</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>FTI UNIVERSITAS BUDI LUHUR</p> <p>3. Contoh nilai suatu data tidak boleh lebih rendah dari nilai sebelumnya:CREATE INTEGRITY RULE R3 BEFORE UPDATE OF S.STATUS FROM NEW_STATUS: CHECKNEW_STATUS &gt; S.STATUS;</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>FTI UNIVERSITAS BUDI LUHUR</p> <p>Ganjil 2006 KP157-11.6</p> <p>4. Contoh pembatasan terhadap tabel lain: (Supplier Canada harus mensuplai P2)CREATE INTEGRITY RULE R5 AT COMMIT: CHECK IF S.CITY=CANADA THEN EXIST SP (SP.S#=S.S# AND SP.P#=P2) ELSE ROLLBACK;</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>FTI UNIVERSITAS BUDI LUHUR</p> <p>Ganjil 2006 KP157-11.7</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>5. Field S# adalah kunci primer tabel SCREATE INTEGRITY RULE R6 BEFORE INSERT OF S FROM NEW_S UPDATE S.S# FROM NEW_S.S# CHECK NOT (IS_NULL (NEW_S.S#)) AND NOT EXIST S (S.S#=NEW_S.S#);</p> <p>FTI UNIVERSITAS BUDI LUHUR</p> <p>Ganjil 2006 KP157-11.8</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>6. Pengecekan sebagai Foreign KeyCREATE INTEGRITY RULE R7 AFTER INSERT OF SP, UPDATE OF SP.S#: CHECK EXIST S (S.S#=SP.S#); CHECK INTEGRITY RULE R8 AFTER INSERT OF SP UPDATE OF SP.P#: CHECK EXIST P (P.P#=SP.P#);FTI UNIVERSITAS BUDI LUHURGanjil 2006 KP157-11.9</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>Integrity dalam Quel dengan DEFINE INTEGRITY Bentuk Umum: DEFINE INTEGRITY ON table IS condition Pembatalan integrity DESTROY INTEGRITY table_identifier.</p> <p>FTI UNIVERSITAS BUDI LUHUR</p> <p>Ganjil 2006 KP157-11.10</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>SECURITYDefinisi: Perlindungan data terhadap akses oleh yang tidak mempunyai kewenangan (otorisasi) Merupakan bentuk upaya untuk: </p> <p>Proteksi terhadap basis data Menjaga akurasi data dalam basis data Validitas akses terhadap basis data</p> <p>FTI UNIVERSITAS BUDI LUHUR</p> <p>Ganjil 2006 KP157-11.11</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>Aspek permasalahan security</p> <p>Aspek legal, sosial, etika (misal, seorang customer mempunyai hak untuk mengakses informasi) Pengendalian fisik (misal, apakah ruang terminal perlu dikunci atau dijaga) Masalah kebijaksanaan (enterprise pemilik menentukan siapa dapat mengakses apa) Masalah operasional (misal, penggunaan password, bagaimana menjaga kerahasiaan password itu sendiri, periodik perubahan) Pengendalian hardware (misal, apakah CPU memiliki kemampuan security, kunci proteksi, kewenangan mode operasi) Pengamanan Sistem Operasi (misal, apakah OS menghapus isi memori atau file data setelah selesai) Isu yang berkaitan langsung dengan database sendiri (konsep pemilikan data)FTI UNIVERSITAS BUDI LUHURGanjil 2006 KP157-11.12</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>Unit data berkaitan dengan security:</p> <p>Obyek data </p> <p>Keseluruhan database Kumpulan tabel tertentu Baris dan kolom spesifik dari suatu tabel</p> <p>Kewenangan akses (otoritas)SELECT saja UPDATE INSERT DELETE (serta kombinasinya)</p> <p>FTI UNIVERSITAS BUDI LUHUR</p> <p>Ganjil 2006 KP157-11.13</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>DBMS harus dapat menjalankan fungsi security:Sistem harus diberitahu (perintah GRANT atau REVOKE) Sistem harus dapat mengingat (tersimpan dalam katalog dalam bentuk pembatasan otorisasi) Terdapat sarana pengecekan terhadap permintaan akses (operasi dan obyek) Sistem harus dapat mengenali sumber permintaan akses (user-id dan password)FTI UNIVERSITAS BUDI LUHURGanjil 2006 KP157-11.14</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>Security dalam SQL</p> <p>Dengan mekanisme VIEW Data yang tersembunyi maka otomatis keamanannya terjamin.</p> <p>Horisontal/row subset Value dependent subset Vertical/column subset Value independent subset Row and column subset Context dependent Authorization subsystemGanjil 2006 KP157-11.15</p> <p>FTI UNIVERSITAS BUDI LUHUR</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>Security dalam SQL (lanj.)</p> <p>Dengan statement GRANT dan REVOKE GRANT: Pemberian hak untuk melakukan operasi / akses contoh: GRANT SELECT TO ARDI ON TABLE MHS; GRANT SELECT TO ARDI ON VIEW MHS_DBS; GRANT SELECT, UPDATE TO ARDI ON VIEW NILAI_DBS; GRANT ALL TO ARDI ON VIEW NILAI_DBS;FTI UNIVERSITAS BUDI LUHURGanjil 2006 KP157-11.16</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>RevokePembatalan hak yang telah diberikan untuk melakukan suatu operasi Contoh: GRANT ALL TO MADE ON VIEW NILAI_DBS; REVOKE DELETE, INSERT TO MADE ON VIEW NILAI_DBS;</p> <p>FTI UNIVERSITAS BUDI LUHUR</p> <p>Ganjil 2006 KP157-11.17</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>Contoh Security dalam Quel</p> <p>Security dengan DEFINE PERMIT Bentuk Umum: DEFINE PERMIT OPERATIONS (S) ON TABLE [(field-commalist)] TO USER [AT terminal (S)] [FROM time1 TO time2] [ON day1 TO day2] [WHERE condition] Pembatalan Security DESTROY PERMIT table identifier.FTI UNIVERSITAS BUDI LUHURGanjil 2006 KP157-11.18</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>Tips mengamankan MySQL dari crack</p> <p>Backup Database Sistem</p> <p>Untuk menjaga bila ada kerusakan atau gangguan dari cracker. Supaya bila diperlukan langsung di-restore ke database aslinya Dengan memberi perintah GRANT sehingga client hanya dapat mengakses saja tanpa bisa melakukan modifikasi. Ini penting sekali untuk database server. Dengan men-disable perintah SHOW DATABASES sehingga client tidak dapat menampilkan database yang ada di MySQL, caranya dengan mengaktifkan skip_show_database.</p> <p>Proteksi Database Sistem</p> <p>FTI UNIVERSITAS BUDI LUHUR</p> <p>Ganjil 2006 KP157-11.19</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>Cara men-disable perintah SHOW DATABASES(1)</p> <p>Matikan MySQL server dengan perintah:C:\&gt;NET STOP mysql The MySQL service is stopping The MySQL service was stopped successfully</p> <p>Aktifkan skip_show_database:C:\&gt;mysqld skip-show-database 021021 0:03:54 InnoDB: Started</p> <p>Pastikan dengan masuk pada prompt mysql lalu berikan perintah:mysql&gt; SHOW VARIABLES;FTI UNIVERSITAS BUDI LUHURGanjil 2006 KP157-11.20</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>Cara men-disable perintah SHOW DATABASES(2)</p> <p>Pada tampilan yang ada, cari bagian seperti berikut:| skip_show_database | ON</p> <p>Setelah skip_show_database sudah aktif, lalu keluarlah dari prompt mysql. Jalankan kembali MySQL server. Cek hasilnya dengan user tamu.</p> <p>mysql&gt; SHOW DATABASES; ERROR 1045: Access denied for user: tamu@127.0.0.1 (using password: YES)FTI UNIVERSITAS BUDI LUHURGanjil 2006 KP157-11.21</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>Akses UserSatu database sering mengandung banyak user. User yang dimaksud adalah objek database pemilik sebuah schema, bukan orang yang menggunakan atau mengakses database tersebut. Beberapa orang pengguna sebuah database dapat menggunakan satu user dalam waktu yang bersamaan.FTI UNIVERSITAS BUDI LUHURGanjil 2006 KP157-11.22</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>Menambah User di MySQL</p> <p>Perintah untuk menambah user baru dengan nama didik dan password okedeh. INSERT INTO user VALUES (localhost,didik,password(okedeh),Y,Y,Y,Y ,Y,N,N,N,N,Y,N,Y,Y,Y); Perintah untuk mengaktifkan konfigurasi:</p> <p>FLUSH PRIVILEGES; SELECT user, host, password FROM user;</p> <p>Perintah untuk melihat konfigurasi yang dibuat:</p> <p>FTI UNIVERSITAS BUDI LUHUR</p> <p>Ganjil 2006 KP157-11.23</p> <p>SISTEM BASIS DATA 2 (3 SKS)</p> <p>Membuat User di Oracle</p> <p>Perintah untuk membuat user:CREATE USER u_name IDENTIFIED BY password; contoh: CREATE USER proyek_dev IDENTIFIED BY developer; GRANT connect TO proyek_dev;</p> <p>FTI UNIVERSITAS BUDI LUHUR</p> <p>Ganjil 2006 KP157-11.24</p>