7 Sistem Basis Data Integritas Data

  

Alif Finandhita, S.Kom

    Informasi yang disimpan pada basis data hanya akan Informasi yang disimpan pada basis data hanya akan

  bagus jika DBMS turut membantu mencegah adanya bagus jika DBMS turut membantu mencegah adanya informasi yang salah yang masuk ke basis data. informasi yang salah yang masuk ke basis data.

  Batasan Integritas data (Data Integrity Constrain) Batasan Integritas data (Data Integrity Constrain)

   

  adalah syarat yang dispesifikasikan pada basis data adalah syarat yang dispesifikasikan pada basis data untuk membatasi data yang dapat disimpan di dalam untuk membatasi data yang dapat disimpan di dalam basis data. basis data.

  Jika basis data memenuhi semua batasan integritas Jika basis data memenuhi semua batasan integritas

   

  yang dispesifikasikan pada skema basis datanya, yang dispesifikasikan pada skema basis datanya, maka basis data tersebut sudah bisa dikatakan legal. maka basis data tersebut sudah bisa dikatakan legal.

  DBMS “memaksakan” batasan integritas data, DBMS “memaksakan” batasan integritas data,   sehingga hanya mengijinkan basis data yang sehingga hanya mengijinkan basis data yang legal lah yang dapat disimpan oleh DBMS. legal lah yang dapat disimpan oleh DBMS.

  Batasan integritas menjamin bahwa perubahan Batasan integritas menjamin bahwa perubahan  

  • – perubahan yang dilakukan oleh orang yang – perubahan yang dilakukan oleh orang yang memang mempunyai otorisasi tidak akan memang mempunyai otorisasi tidak akan melanggar konsistensi data. melanggar konsistensi data. Artinya bahwa data akan tetap terjaga, tetap Artinya bahwa data akan tetap terjaga, tetap

    akurat, konsisten, dan handal. akurat, konsisten, dan handal.

  Batasan integritas menjaga terjadinya kerusakan Batasan integritas menjaga terjadinya kerusakan

   

  terhadap database yang dapat terjadi dengan terhadap database yang dapat terjadi dengan memastikan bahwa perubahan terhadap database memastikan bahwa perubahan terhadap database tidak menyebabkan terjadinya inkonsistensi data tidak menyebabkan terjadinya inkonsistensi data

    Integritas data mengacu ke konsistensi dan akurasi Integritas data mengacu ke konsistensi dan akurasi data yang disimpan di dalam basis data. data yang disimpan di dalam basis data.

  Batasan integritas dispesifikasikan dan “dipaksakan” Batasan integritas dispesifikasikan dan “dipaksakan”

   

  pada waktu yang berbeda, yaitu : pada waktu yang berbeda, yaitu :

  Ketika DBA mendefinisikan skema basis data melalui DDL, Ketika DBA mendefinisikan skema basis data melalui DDL,  

  DBA menspesifikasikan batasan / konstrain integritas yang DBA menspesifikasikan batasan / konstrain integritas yang harus selalu dipenuhi. harus selalu dipenuhi.

  Ketika aplikasi basis data dijalankan, DBMS Ketika aplikasi basis data dijalankan, DBMS   melakukan pemeriksaan untuk mencegah terjadinya melakukan pemeriksaan untuk mencegah terjadinya pelanggaran dan mencegah perubahan – perubahan pelanggaran dan mencegah perubahan – perubahan yang melanggar konstrain integritas yang telah yang melanggar konstrain integritas yang telah ditentukan sebelumnya. ditentukan sebelumnya.

  Dalam kondisi tertentu, DBMS tidak melarang suatu Dalam kondisi tertentu, DBMS tidak melarang suatu   aksi yang dapat menimbulkan pelanggaran, namun aksi yang dapat menimbulkan pelanggaran, namun kemudian DBMS membuat tindakan – tindakan kemudian DBMS membuat tindakan – tindakan

otomatis untuk tetap memenuhi konstrain integritas, otomatis untuk tetap memenuhi konstrain integritas, dengan demikian dijamin perubahan tidak akan dengan demikian dijamin perubahan tidak akan mengganggu integritas data. mengganggu integritas data. Integritas data dapat dikelompokkan menjadi dua Integritas data dapat dikelompokkan menjadi dua

   

  bagian : bagian :

  Integritas data yang berada di dalam relasi, yaitu Integritas data yang berada di dalam relasi, yaitu  

  Integritas entitas (Entity Integrity) dan Integritas Domain Integritas entitas (Entity Integrity) dan Integritas Domain (Domain Integrity). (Domain Integrity).

  

Integritas data yang berada di luar relasi, yaitu Integritas

Integritas data yang berada di luar relasi, yaitu Integritas

  referensial (Referential Integrity). referensial (Referential Integrity).

    Selain itu juga terdapat aturan integritas untuk Selain itu juga terdapat aturan integritas untuk

  memenuhi aturan – tertentu yang ditentukan sendiri memenuhi aturan – tertentu yang ditentukan sendiri di dalam suatu perusahaan (Enterprise), disebut di dalam suatu perusahaan (Enterprise), disebut dengan Integritas perusahaan (Enterprise dengan Integritas perusahaan (Enterprise Integrity/User Defined Integrity) Integrity/User Defined Integrity)

  Secara garis besar, di dalam model relasional Secara garis besar, di dalam model relasional  

  Integritas data meliputi : Integritas data meliputi : Integritas Entitas (Entity Integrity) Integritas Entitas (Entity Integrity)

    Integritas Domain (Domain Integrity) Integritas Domain (Domain Integrity)

    Integritas Referensial (Referential Integrity) Integritas Referensial (Referential Integrity)

    Integritas Enterprise (Enterprise/User Defined Integritas Enterprise (Enterprise/User Defined

    Integrity Integrity Integritas entitas mendefinisikan sebuah baris Integritas entitas mendefinisikan sebuah baris   sebagai sebuah entitas yang unik untuk suatu sebagai sebuah entitas yang unik untuk suatu tabel. tabel.

  Integritas entitas memaksa integritas dari Integritas entitas memaksa integritas dari  

column atau primary key dari suatu tabel melalui column atau primary key dari suatu tabel melalui

index, unique, constrains, primary key, dimana index, unique, constrains, primary key, dimana primary key tidak boleh null. primary key tidak boleh null.

  Dalam Integritas entitas, tidak ada baris yang Dalam Integritas entitas, tidak ada baris yang   duplikat di dalam satu tabel. duplikat di dalam satu tabel.

  create table Pembelian create table Pembelian (IDPembelian smallint , (IDPembelian smallint ,

  IDModel smallint, DeskripsiModel varchar(40), DeskripsiModel varchar(40), primary key (IDPembelian)); primary key (IDPembelian)); create table Pembelian create table Pembelian (IDPembelian smallint , (IDPembelian smallint ,

  IDModel smallint,

  IDModel smallint, DeskripsiModel varchar(40), DeskripsiModel varchar(40), primary key (IDPembelian) primary key (IDPembelian) unique (ID Pembelian, ID Model)); unique (ID Pembelian, ID Model));

  IDModel smallint,

    Domain adalah nilai – nilai yang dimungkinkan Domain adalah nilai – nilai yang dimungkinkan diasosiasikan dengan setiap atribut. diasosiasikan dengan setiap atribut.

  

Integritas domain merupakan validasi dari masukan untuk Integritas domain merupakan validasi dari masukan untuk

  sebuah kolom. sebuah kolom.

  Kita dapat memaksa integritas domain dengan Kita dapat memaksa integritas domain dengan  

membatasi tipe (melalui data types), format (melalui check membatasi tipe (melalui data types), format (melalui check

constraints dan rules), atau range nilai – nilai yang constraints dan rules), atau range nilai – nilai yang mungkin (melalui Foreign Key Constrains, Check mungkin (melalui Foreign Key Constrains, Check Constraints, Default Definitions dan Rules) Constraints, Default Definitions dan Rules)

Dengan integritas domain, tidak ada data yang melanggar Dengan integritas domain, tidak ada data yang melanggar

    jangkauan nilai di tiap kolom data. jangkauan nilai di tiap kolom data.

    Pada saat membuat tabel (“Create Table”), kita bisa Pada saat membuat tabel (“Create Table”), kita bisa

  mencegah kolom bernilai Null dengan menggunakan mencegah kolom bernilai Null dengan menggunakan konstrain “Not Null” yang berlaku untuk kolom. konstrain “Not Null” yang berlaku untuk kolom.

  Bila tidak dinyatakan, SQL akan mengasumsikan Bila tidak dinyatakan, SQL akan mengasumsikan

   

  kondisi Null diijinkan, kecuali bila suatu kolom kondisi Null diijinkan, kecuali bila suatu kolom dispesifikasikan sebagai bagian dari kunci utama yang dispesifikasikan sebagai bagian dari kunci utama yang dinyatakan dengan Primary Key. dinyatakan dengan Primary Key.

  Supaya integritas entitas tetap terjaga, maka lebih Supaya integritas entitas tetap terjaga, maka lebih

    baik jika konstrain “Not Null” dinyatakan. baik jika konstrain “Not Null” dinyatakan.

   Jenis domain yang dapat dimiliki oleh suatu atribut :

   Karakter bebas

   Penerapan proses validasi pada pemasukan data

   Pemanfaatan properti field

   Pendefinisian skema / struktur tabel

   Numerik 

   Alphabet

   Alphanumerik

  Jenis domain yang dapat dimiliki oleh suatu atribut :

   Karakter bebas

   Penerapan proses validasi pada pemasukan data 

   Pemanfaatan properti field

   Pendefinisian skema / struktur tabel

  Pemeliharaan integritas domain :

   Numerik 

   Alphabet

   Alphanumerik

Pemeliharaan integritas domain :

  create table biografi create table biografi (idpenulis smallint unsigned not null, (idpenulis smallint unsigned not null, tahunlahir year not null, tahunlahir year not null, kotalahir varchar(40) not null default kotalahir varchar(40) not null default ‘kosong’); ‘kosong’); create domain nilai numeric(3,2) create domain nilai numeric(3,2) constraint value-test check(value > = 0.00) constraint value-test check(value > = 0.00)

    Integritas Referensial memastikan bahwa seluruh nilai Integritas Referensial memastikan bahwa seluruh nilai

  dari foreign key cocok dengan nilai primary key yang dari foreign key cocok dengan nilai primary key yang dihubungkannya. dihubungkannya.

  Integritas Referensial adalah dasar relasi antar tabel Integritas Referensial adalah dasar relasi antar tabel

    yaitu antara foreign key dengan primary key. yaitu antara foreign key dengan primary key.

  Data pada foreign key harus sesuai dengan primary Data pada foreign key harus sesuai dengan primary

    key. Artinya : key. Artinya :

  Tipe data dan ukuran sama Tipe data dan ukuran sama  

  Konsistensi tetap terjaga ketika ada penghapusan, Konsistensi tetap terjaga ketika ada penghapusan,   pergantian data dan penambahan data pada tabel pergantian data dan penambahan data pada tabel Ketika integritas referensial ini dilaksanakan Ketika integritas referensial ini dilaksanakan   maka akan mengecek : maka akan mengecek :

  Penambahan record apakah record yang Penambahan record apakah record yang

   

  ditambahkan pada foreign key ada dalam primary ditambahkan pada foreign key ada dalam primary key atau tidak. key atau tidak.

  Perubahan data pada primary key apakah akan Perubahan data pada primary key apakah akan

    mempengaruhi terhadap foreign key atau tidak. mempengaruhi terhadap foreign key atau tidak. Opsi ketika suatu record pada tabel yang Opsi ketika suatu record pada tabel yang   direferensi oleh suatu foreign key dihapus atau direferensi oleh suatu foreign key dihapus atau diganti nilainya : diganti nilainya :

  [ ON DELETE { CASCADE | NO ACTION } ] [ ON DELETE { CASCADE | NO ACTION } ]  

  [ ON UPDATE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ]  

  ON DELETE, merupakan tindakan pada tabel ON DELETE, merupakan tindakan pada tabel   yang direferensi terjadi penghapusan record. yang direferensi terjadi penghapusan record.

  ON UPDATE, merupakan tindakan apabila data ON UPDATE, merupakan tindakan apabila data   tabel yang direferensi mengalami perubahan tabel yang direferensi mengalami perubahan nilai record. nilai record.

  

Tindakan yang dapat diatur pada ON DELETE Tindakan yang dapat diatur pada ON DELETE

  maupun ON UPDATE ada dua, yaitu : maupun ON UPDATE ada dua, yaitu :

   

   

   

  Jika nilai primary key pada tabel yang direferensi Jika nilai primary key pada tabel yang direferensi

   

  diganti maka foreign key pada tabel yang diganti maka foreign key pada tabel yang mereferensi akan disamakan nilainya dengan mereferensi akan disamakan nilainya dengan primary key pada tabel yang direferensi. primary key pada tabel yang direferensi.

    ON DELETE CASCADE ON DELETE CASCADE Jika nilai primary key pada tabel yang direferensi dihapus maka Jika nilai primary key pada tabel yang direferensi dihapus maka

    semua record yang nilai foreign key-nya=primary key pada tabel semua record yang nilai foreign key-nya=primary key pada tabel yang direferensi dimana recordnya yang dihapus akan turut yang direferensi dimana recordnya yang dihapus akan turut terhapus. terhapus.

   

Jika nilai primary key pada tabel yang direferensi diganti maka

Jika nilai primary key pada tabel yang direferensi diganti maka

    foreign key pada tabel yang mereferensi nilainya tidak ikut foreign key pada tabel yang mereferensi nilainya tidak ikut berubah berubah

    Jika nilai Primary Key pada tabel yang direferensi dihapus maka Jika nilai Primary Key pada tabel yang direferensi dihapus maka

   

semua record yang nilai foreign key-nya=primary key tidak ikut semua record yang nilai foreign key-nya=primary key tidak ikut

dihapus dihapus

  create table customer create table customer (customer-name (customer-name char(20), char(20), customer-street customer-street char(30), char(30), customer-city char(30), customer-city char(30), primary key (customer-name)) primary key (customer-name)) create table branch create table branch (branch-name char(15), (branch-name char(15), branch-city char(30), branch-city char(30), assets assets integer, integer, primary key (branch-name)) primary key (branch-name))

  create table account create table account (account-number char(10), (account-number char(10), branch-name char(15), branch-name char(15), balance balance integer, integer, primary key (account-number), primary key (account-number), foreign key (branch-name) references branch) foreign key (branch-name) references branch) create table depositor create table depositor

  (customer-name char(20), (customer-name char(20), account-number char(10), account-number char(10), primary key (customer-name, account-number), primary key (customer-name, account-number), foreign key (account-number) references account, foreign key (account-number) references account, foreign key (customer-name) references customer) foreign key (customer-name) references customer) on delete cascade on update cascade on delete cascade on update cascade

  Integritas Enterprise / User Defined Integritas Enterprise / User Defined  

  Integration mengizinkan kita untuk Integration mengizinkan kita untuk menentukan spesific business rules sendiri menentukan spesific business rules sendiri yang tidak sama pada katogeri integritas yang tidak sama pada katogeri integritas yang lainnya yang lainnya

  kerahasiaan Prinsip Pengamanan : Prinsip Pengamanan :

    Security Security Principles Integritas ketersediaan

  Kerahasiaan menjamin perlindungan akses informasi Kerahasiaan menjamin perlindungan akses informasi  

  Integritas menjamin bahwa informasi tidak dapat Integritas menjamin bahwa informasi tidak dapat   diubah dan tetap konsisten diubah dan tetap konsisten Ketersediaan menjamin kesiapan akses informasi Ketersediaan menjamin kesiapan akses informasi

    Contoh : Contoh :  

  Kerahasiaan: Kerahasiaan:

   

  catatan medis pasien harus tertutup untuk umum catatan medis pasien harus tertutup untuk umum Integritas: Integritas:

   

  catatan medis harus benar catatan medis harus benar Ketersediaan: Ketersediaan:

   

  catatan medis pasien dapat diakses saat catatan medis pasien dapat diakses saat dibutuhkan untuk pengobatan dibutuhkan untuk pengobatan

  

Pengamanan data merupakan mekanisme untuk Pengamanan data merupakan mekanisme untuk

  melindungi sistem basis data dari aksi yang melindungi sistem basis data dari aksi yang disengaja (mis : percobaan pencurian / disengaja (mis : percobaan pencurian / modifikasi data oleh pihak yang tidak modifikasi data oleh pihak yang tidak berwenang) dan tidak disengaja (mis: bencana berwenang) dan tidak disengaja (mis: bencana alam, kebakaran, dll) alam, kebakaran, dll) Kerusakan yang biasa terjadi : kehilangan Kerusakan yang biasa terjadi : kehilangan

    kerahasiaan, kehilangan kebebasan (privacy), kerahasiaan, kehilangan kebebasan (privacy),

kehilangan keutuhan data (integrity), kehilangan kehilangan keutuhan data (integrity), kehilangan

ketersediaan data (availability). ketersediaan data (availability).

  Ancaman potensial terhadap sistem komputer : 

DBMS dan Software Aplikasi :

DBMS dan Software Aplikasi :

  

Kesalahan dalam mekanisme pengamanan dengan

pemberian hak akses yang lebih besar

   Pengubahan atau pencurian program 

   Penyadapan

   Pemutusan kabel

   Interfensi Gelombang dan radiasi Ancaman potensial terhadap sistem komputer : 

  

Kesalahan dalam mekanisme pengamanan dengan

pemberian hak akses yang lebih besar

   Pengubahan atau pencurian program 

Jaringan Komunikasi :

Jaringan Komunikasi :

   Penyadapan

   Pemutusan kabel

   Interfensi Gelombang dan radiasi

Data / Database Administrator :

Data / Database Administrator :

  

   Kebijakan pengamanan dan prosedur yang lemah

  

   Bencana alam

   Kehilangan data karena listrik mati

   Pencurian peralatan

  

   Kebijakan pengamanan dan prosedur yang lemah

Hardware :

Hardware :

  

   Bencana alam

   Kehilangan data karena listrik mati

   Pencurian peralatan

   Database :

   Pengubahan yang tidak sah atau penduplikasian data

   Membuat jebakan (trapdoor)

   Programmer :

   Memasukkan virus/worm/trojan.

   Kekurangan staf yang terlatih

   Viewing dan penutupan data yang tidak sah

   Menggunakan hak akses orang lain

  User :

   Pencurian data 

   Database :

   Pengubahan yang tidak sah atau penduplikasian data

   Mengubah program.

   Membuat jebakan (trapdoor)

   Programmer :

   Memasukkan virus/worm/trojan.

   Kekurangan staf yang terlatih

   Viewing dan penutupan data yang tidak sah

   Menggunakan hak akses orang lain

  User :

   Pencurian data 

   Mengubah program. Langkah – langkah pengamanan data : Langkah – langkah pengamanan data :

Level DBMS : Level DBMS :

   

Menerapkan mekanisme otorisasi dan autentifikasi Menerapkan mekanisme otorisasi dan autentifikasi

    untuk mengatur hanya user tertentu saja yang dapat untuk mengatur hanya user tertentu saja yang dapat mengakses data sesuai dengan yang dibutuhkan mengakses data sesuai dengan yang dibutuhkan

Level Sistem Operasi : Level Sistem Operasi :

    Super user pada sistem operasi dapat melakukan Super user pada sistem operasi dapat melakukan

    apapun terhadap database. Oleh karena itu apapun terhadap database. Oleh karena itu

dibutuhkan mekanisme pengamanan yang baik bagi dibutuhkan mekanisme pengamanan yang baik bagi

sistem operasi sistem operasi

Level Jaringan : Level Jaringan :

    Setiap data yang dikirimkan melalui network harus Setiap data yang dikirimkan melalui network harus

    dienkripsi untuk menghindari terjadinya pembacaan data dienkripsi untuk menghindari terjadinya pembacaan data oleh orang yang tidak behak (Eavesdropping) dan oleh orang yang tidak behak (Eavesdropping) dan penyalahgunaan hak akses/berpura pura sebagai penyalahgunaan hak akses/berpura pura sebagai authorized user (masquerading) authorized user (masquerading)

Level Fisik : Level Fisik :

    Akses terhadap fisik komputer memungkinkan perusakan Akses terhadap fisik komputer memungkinkan perusakan

    data oleh penyusup. Oleh karena itu diperlukan data oleh penyusup. Oleh karena itu diperlukan mekanisme konvensional untuk mengamankan fisik mekanisme konvensional untuk mengamankan fisik komputer (gembok / kunci). komputer (gembok / kunci).

  Komputer juga harus terlindungi dari kejadian bencana Komputer juga harus terlindungi dari kejadian bencana   alam seperti kebakaran, banjir, gempa, dll. alam seperti kebakaran, banjir, gempa, dll.

    Otorisasi merupakan pemberian hak yang istimewa Otorisasi merupakan pemberian hak yang istimewa

  terhadap user sehingga dapat mempunyai akses yang terhadap user sehingga dapat mempunyai akses yang sah terhadap sistem atau objek sistem. sah terhadap sistem atau objek sistem.

  Bentuk otorisasi dalam basis data : Bentuk otorisasi dalam basis data :

    Read authorization – mengizinkan pembacaan data, tapi Read authorization – mengizinkan pembacaan data, tapi

    tidak diizinkan modifikasi data. tidak diizinkan modifikasi data.

  Insert authorization – mengizinkan penambahan data Insert authorization – mengizinkan penambahan data  

baru, tapi tidak diizinkan modifikasi data yang sudah ada baru, tapi tidak diizinkan modifikasi data yang sudah ada

Update authorization – mengizinkan modifikasi, tapi Update authorization – mengizinkan modifikasi, tapi

    tidak diizinkan menghapus data tidak diizinkan menghapus data

Delete authorization – mengizinkan penghapusan data Delete authorization – mengizinkan penghapusan data

    Bentuk otorisasi untuk modifikasi skema basis Bentuk otorisasi untuk modifikasi skema basis   data : data :

  

Index authorization – mengizinkan pembuatan dan Index authorization – mengizinkan pembuatan dan

  penghapusan index. penghapusan index.

  Resources authorization – mengizinkan pembuatan Resources authorization – mengizinkan pembuatan   relasi baru. relasi baru.

  Alteration authorization – mengizinkan Alteration authorization – mengizinkan   penambahan atau penghapusan suatu atribut di penambahan atau penghapusan suatu atribut di dalam suatu relasi. dalam suatu relasi.

  Drop authorization – mengizinkan penghapusan Drop authorization – mengizinkan penghapusan   suatu relasi. suatu relasi.

    View adalah objek basis data yang berisi perintah View adalah objek basis data yang berisi perintah query ke basis data. query ke basis data.

  Setiap kali sebuah view diaktifkan, pemakai akan Setiap kali sebuah view diaktifkan, pemakai akan

    selalu melihat hasil querynya. selalu melihat hasil querynya.

    Berbeda dengan tabel, data yang ditampilkan di Berbeda dengan tabel, data yang ditampilkan di dalam view tidak bisa diubah. dalam view tidak bisa diubah.

  View menyediakan mekanisme pengamanan yang View menyediakan mekanisme pengamanan yang

   

  fleksibel namun kuat dengan cara menyembunyikan fleksibel namun kuat dengan cara menyembunyikan sebagian basis data dari user lain. sebagian basis data dari user lain.

  User dapat diberikan otorisasi pada View, tanpa harus User dapat diberikan otorisasi pada View, tanpa harus

   

  diberikan otorisasi terhadap relasi yang digunakan di diberikan otorisasi terhadap relasi yang digunakan di dalam definisi view. dalam definisi view.

  View dapat meningkatkan keamanan data dengan View dapat meningkatkan keamanan data dengan

   

  mengizinkan user untuk hanya dapat mengakses data mengizinkan user untuk hanya dapat mengakses data sesuai dengan pekerjaannya masing – masing. sesuai dengan pekerjaannya masing – masing.

  Kombinasi antara level keamanan di tingkat relasional Kombinasi antara level keamanan di tingkat relasional

   

  dengan level keamanan di tingkat view dapat dengan level keamanan di tingkat view dapat digunakan untuk membatasi hak akses user, sehingga digunakan untuk membatasi hak akses user, sehingga mereka hanya mengakses data sesuai dengan mereka hanya mengakses data sesuai dengan kebutuhannya saja. kebutuhannya saja. Contoh View : Contoh View :

Misalkan seorang pegawai bank membutuhkan informasi nama – Misalkan seorang pegawai bank membutuhkan informasi nama –

 

nama nasabah dari setiap cabang yang ada, tetapi tidak diizinkan nama nasabah dari setiap cabang yang ada, tetapi tidak diizinkan

untuk mengetahui secara spesifik jumlah pinjamannya. untuk mengetahui secara spesifik jumlah pinjamannya.

  

Penyelesaian : tolak akses langsung ke relasi pinjaman , tapi berikan Penyelesaian : tolak akses langsung ke relasi pinjaman , tapi berikan

 

akses terhadap view nasabah-pinjam yang hanya terdiri dari nama akses terhadap view nasabah-pinjam yang hanya terdiri dari nama

nasabah beserta cabangnya dimana mereka melakukan pinjaman nasabah beserta cabangnya dimana mereka melakukan pinjaman View nasabah-pinjam didefinisikan di dalam SQL sebagai berikut : View nasabah-pinjam didefinisikan di dalam SQL sebagai berikut :

    create view nasabah-pinjam as create view nasabah-pinjam as select nama-cabang, nama-pelanggan select nama-cabang, nama-pelanggan from peminjam, pinjaman from peminjam, pinjaman where peminjam.no-pinjaman = pinjaman.no-pinjaman where peminjam.no-pinjaman = pinjaman.no-pinjaman Pegawai tersebut diizinkan untuk melihat view Pegawai tersebut diizinkan untuk melihat view

   

  dengan SQL : dengan SQL :

  Select * from nasabah-pinjam Select * from nasabah-pinjam

  Ketika pemroses query menterjemahkan hasilnya ke Ketika pemroses query menterjemahkan hasilnya ke

   

  dalam query yang terdapat di dalam relasi aktualnya dalam query yang terdapat di dalam relasi aktualnya di basis data, si pegawai memperoleh query yang ada di basis data, si pegawai memperoleh query yang ada di peminjam dan pinjaman. di peminjam dan pinjaman.

  Pada saat pegawai bank tersebut melakukan query, Pada saat pegawai bank tersebut melakukan query,

   

  harus dicek dulu otorisasinya sebelum pemrosesan harus dicek dulu otorisasinya sebelum pemrosesan query me-replace view oleh definisi viewnya. query me-replace view oleh definisi viewnya.

    Pembuatan view tidak membutuhkan resource Pembuatan view tidak membutuhkan resource authorization karena sesungguhnya tidak ada relasi authorization karena sesungguhnya tidak ada relasi yang dibuat. yang dibuat.

  Pembuat view hanya memperoleh hak akses sesuai Pembuat view hanya memperoleh hak akses sesuai

   

  dengan yang diberikannya, tidak ada otorisasi lainnya dengan yang diberikannya, tidak ada otorisasi lainnya diluar dari yang dia miliki. diluar dari yang dia miliki.

  Misalkan, jika si pembuat view nasabah-pinjam hanya Misalkan, jika si pembuat view nasabah-pinjam hanya

   

  memiliki read authorization pada relasi peminjam memiliki read authorization pada relasi peminjam dan pinjaman, maka dia hanya memperoleh otorisasi dan pinjaman, maka dia hanya memperoleh otorisasi tersebut saja pada nasabah –pinjam. tersebut saja pada nasabah –pinjam.

  Otorisasi dari satu user ke user lainnya dapat Otorisasi dari satu user ke user lainnya dapat   direpresentasikan ke dalam suatu grafik direpresentasikan ke dalam suatu grafik   Node dari grafik ini adalah user. Node dari grafik ini adalah user.

  Root-nya adalah Database Administrator Root-nya adalah Database Administrator  

  (DBA) (DBA)   Misalkan grafik untuk udpate authorization Misalkan grafik untuk udpate authorization pada relasi pinjaman pada relasi pinjaman

  Bentuk U –> U mengindikasikan bahwa user  i j

  U memiliki otorisasi untuk update pada relasi i pinjaman terhadap U . j

  U 1 U 4 DBA U 2 U 5 U 3

  

Pernyataan grant digunakan untuk memberikan Pernyataan grant digunakan untuk memberikan

  otorisasi : otorisasi : grant <daftar privilege> grant <daftar privilege> on <nama relasi / nama view> to <daftar on <nama relasi / nama view> to <daftar user> user> <daftar user> adalah : <daftar user> adalah :

    Id-user Id-user

   

Public, yang memungkinkan semua daftar user yang Public, yang memungkinkan semua daftar user yang

   

valid untuk menggunakan hak akses yang diberikan valid untuk menggunakan hak akses yang diberikan

Role Role

   

  

Pernyataan grant digunakan untuk memberikan Pernyataan grant digunakan untuk memberikan

  otorisasi : otorisasi : grant <daftar privilege> grant <daftar privilege> on <nama relasi / nama view> to <daftar on <nama relasi / nama view> to <daftar user> user> <daftar user> adalah : <daftar user> adalah :

    Id-user Id-user

   

Public, yang memungkinkan semua daftar user yang Public, yang memungkinkan semua daftar user yang

   

valid untuk menggunakan hak akses yang diberikan valid untuk menggunakan hak akses yang diberikan

Role Role

   

Select : Select :

    Mengizinkan user untuk melihat data yang ada Mengizinkan user untuk melihat data yang ada di relasi, atau kemampuan untuk melakukan di relasi, atau kemampuan untuk melakukan query dengan menggunakan view query dengan menggunakan view

  Contoh : memberikan hak akses select authorization Contoh : memberikan hak akses select authorization   bagi user U bagi user U , U , U , dan U , dan U pada relasi cabang. grant pada relasi cabang. grant

  1

  1

  2

  2

  3 select on cabang to U select on cabang to U , U , U , U , U

  3

  1

  1

  

2

2 3” 3”

Insert : Insert :

   

Kemampuan untuk menambahkan record / tuple Kemampuan untuk menambahkan record / tuple

baru baru

Update : Update :

    Kemampuan untuk update data dengan Kemampuan untuk update data dengan menggunakan pernyataan SQL menggunakan pernyataan SQL

Delete : Delete :

   

Kemampuan untuk menghapus record / tuple Kemampuan untuk menghapus record / tuple

References : References :

    Kemampuan untuk mendeklarasikan foreign Kemampuan untuk mendeklarasikan foreign key pada saat membentuk suatu relasi key pada saat membentuk suatu relasi

Usage : Usage :

    Pada SQL-92, memungkinkan user untuk Pada SQL-92, memungkinkan user untuk menggunakan domain tertentu menggunakan domain tertentu

    All Privileges : All Privileges :

Kemampuan untuk menggunakan semua hak Kemampuan untuk menggunakan semua hak

akses yang ada akses yang ada

    Di dalam SQL seorang DBA juga dapat memberikan Di dalam SQL seorang DBA juga dapat memberikan

  hak akses kepada user tertentu untuk melakukan hak akses kepada user tertentu untuk melakukan pemberian hak akses terhadap user lainnya dengan pemberian hak akses terhadap user lainnya dengan menggunakan “with grant option”. menggunakan “with grant option”.

  Contoh : Contoh :

    “grant select on cabang to U “grant select on cabang to U with grant option” with grant option”

  1

  1 Contoh di atas memberikan hak akses kepada U Contoh di atas memberikan hak akses kepada U  

  1

  1

  untuk melakukan perintah select pada relasi cabang untuk melakukan perintah select pada relasi cabang dan memperbolehkan U dan memperbolehkan U untuk memberikan hak untuk memberikan hak

  1

  1 akses tersebut kepada user lainnya. akses tersebut kepada user lainnya. Role memungkinkan hak yang sama Role memungkinkan hak yang sama  

diberikan kepada sekelompok pemakai sekali diberikan kepada sekelompok pemakai sekali

saja dengan membuat role yang sesuai. saja dengan membuat role yang sesuai.

    Hak akses dapat diberikan atau dicabut dari Hak akses dapat diberikan atau dicabut dari roles, sebagaimana halnya pada user roles, sebagaimana halnya pada user

    Roles dapat diberikan kepada beberapa user Roles dapat diberikan kepada beberapa user dan bahkan kepada role lainnya. dan bahkan kepada role lainnya.

  Roles yang didukung oleh standar SQL 99 : Roles yang didukung oleh standar SQL 99 :   create role teller create role teller create role manajer create role manajer grant select on cabang to teller grant select on cabang to teller grant update (jumlah) on account to teller grant update (jumlah) on account to teller grant all privileges on account to manajer grant all privileges on account to manajer grant teller to manajer grant teller to manajer grant teller to andri, desi grant teller to andri, desi grant manajer to alif grant manajer to alif

   Pernyataan revoke digunakan untuk pencabutan otorisasi hak akses revoke <daftar privilege> on <nama relasi / nama view> from <daftar user> [restrict|cascade]

   Contoh : revoke select on cabang from U 1, U 2 , U 3 cascade

   Pencabutan hak akses dari seorang user dapat menyebabkan user lainnya juga kehilangan hak akses itu (cascade)

   Pernyataan revoke digunakan untuk pencabutan otorisasi hak akses revoke <daftar privilege> on <nama relasi / nama view> from <daftar user> [restrict|cascade]

   Contoh : revoke select on cabang from U 1, U 2 , U 3 cascade

   Pencabutan hak akses dari seorang user dapat menyebabkan user lainnya juga kehilangan hak akses itu (cascade)

    <daftar privilege> bisa dibuat menjadi all untuk mencabut <daftar privilege> bisa dibuat menjadi all untuk mencabut semua hak akses yang sedang dipegang oleh user yang semua hak akses yang sedang dipegang oleh user yang bersangkutan. bersangkutan.

  Jika <daftar user> meliputi public maka semua user akan Jika <daftar user> meliputi public maka semua user akan   kehilangan hak aksesnya. kehilangan hak aksesnya.

  Jika hak akses yang sama diberikan dua kali untuk Jika hak akses yang sama diberikan dua kali untuk  

pengguna yang sama oleh pemberi otoritas yang berbeda, pengguna yang sama oleh pemberi otoritas yang berbeda,

pengguna dapat mempertahankan hak aksesnya setelah pengguna dapat mempertahankan hak aksesnya setelah pencabutan. pencabutan.

  Semua hak akses yang bergantung pada hak akses yang Semua hak akses yang bergantung pada hak akses yang   dicabut maka akan ikut tercabut pula hak aksesnya dicabut maka akan ikut tercabut pula hak aksesnya

    Audit trail adalah log dari semua perubahan Audit trail adalah log dari semua perubahan

  (insert/delete/update) terhadap basis data bersamaan (insert/delete/update) terhadap basis data bersamaan dengan informasi seperti user yang mana yang dengan informasi seperti user yang mana yang melakukan perubahan, dan kapan perubahan melakukan perubahan, dan kapan perubahan tersebut dilakukan tersebut dilakukan

    Digunakan untuk melacak kalau perubahan data yang Digunakan untuk melacak kalau perubahan data yang

  tidak sesuai (palsu/keliru) tidak sesuai (palsu/keliru) Dapat diimplementasikan dengan menggunakan Dapat diimplementasikan dengan menggunakan

    Trigger , tapi banyak juga DBMS yang memberikan Trigger , tapi banyak juga DBMS yang memberikan

  dukungan langsung untuk proses audit dukungan langsung untuk proses audit

  Data dapat dienkripsi pada saat ketentuan pada Data dapat dienkripsi pada saat ketentuan pada

   

  otorisasi database tidak memberikan perlindungan otorisasi database tidak memberikan perlindungan yang memadai . yang memadai .

  Teknik enkripsi yang baik : Teknik enkripsi yang baik :

    Relatif mudah bagi user yang mempunyai hak akses untuk Relatif mudah bagi user yang mempunyai hak akses untuk

    melakukan enkripsi dan deskripsi data melakukan enkripsi dan deskripsi data Skema enkripsi tidak tergantung pada kerahasiaan Skema enkripsi tidak tergantung pada kerahasiaan

    algoritmanya, tetapi pada kerahasiaan parameter dari algoritmanya, tetapi pada kerahasiaan parameter dari algoritmanya yang disebut dengan kunci enkripsi algoritmanya yang disebut dengan kunci enkripsi (encryption key) (encryption key) Menyulitkan penyusup untuk dapat mengetahui kunci Menyulitkan penyusup untuk dapat mengetahui kunci

    enkripsi yang digunakan enkripsi yang digunakan

  Data Encryption Standard (DES) : Data Encryption Standard (DES) :  

  Menukar karakter dan mengaturnya kembali Menukar karakter dan mengaturnya kembali   berdasarkan kunci enkripsi yang disediakan untuk berdasarkan kunci enkripsi yang disediakan untuk pengguna yang memiliki hak akses melalui pengguna yang memiliki hak akses melalui mekanisme yang aman. Skema ini tidak terlalu aman mekanisme yang aman. Skema ini tidak terlalu aman karena keynya yang harus dishare. karena keynya yang harus dishare.

  Andvance Encryption Standard (AES) : Andvance Encryption Standard (AES) :  

  

Standar yang lebih baru untuk menggantikan DES, Standar yang lebih baru untuk menggantikan DES,

  dan berdasarkan algortima Rijndael, tapi juga dan berdasarkan algortima Rijndael, tapi juga

tergantung dari key rahasianya yang harus dishare. tergantung dari key rahasianya yang harus dishare.

  Public Key Encryption : Public Key Encryption :  

  Masing – masing user mempunyai dua kunci : Masing – masing user mempunyai dua kunci :  

  Public Key : key yang dipublish untuk melakukan enkripsi data, tapi Public Key : key yang dipublish untuk melakukan enkripsi data, tapi tidak untuk deskripsi data tidak untuk deskripsi data ▪ ▪

Private Key : key yang hanya diketahui oleh user tertentu, dan Private Key : key yang hanya diketahui oleh user tertentu, dan

digunakan untuk mendeskripsikan data digunakan untuk mendeskripsikan data Skema enkripsi tersebut dibuat sedemikian rupa sehingga Skema enkripsi tersebut dibuat sedemikian rupa sehingga

   

sangat sulit bagi orang lain untuk mendeskripsikan data sangat sulit bagi orang lain untuk mendeskripsikan data

yang hanya diberikan oleh public key yang hanya diberikan oleh public key

  Skema enkripsi public key RSA berdasarkan pada Skema enkripsi public key RSA berdasarkan pada

   

  kesulitan untuk memfaktorkan sejumlah besar digit kesulitan untuk memfaktorkan sejumlah besar digit (100 an digit) ke dalam komponen – komponen (100 an digit) ke dalam komponen – komponen utamanya utamanya