Upload
lyque
View
217
Download
3
Embed Size (px)
Citation preview
INTEGRITAS DAN KEAMANAN BASIS DATA
Alif Finandhita, S.Kom
Informasi yang disimpan pada basis data hanya akanbagus jika DBMS turut membantu mencegah adanyainformasi yang salah yang masuk ke basis data.
Batasan Integritas data (Data Integrity Constrain)adalah syarat yang dispesifikasikan pada basis datauntuk membatasi data yang dapat disimpan di dalambasis data.
Jika basis data memenuhi semua batasan integritasyang dispesifikasikan pada skema basis datanya,maka basis data tersebut sudah bisa dikatakan legal.
Informasi yang disimpan pada basis data hanya akanbagus jika DBMS turut membantu mencegah adanyainformasi yang salah yang masuk ke basis data.
Batasan Integritas data (Data Integrity Constrain)adalah syarat yang dispesifikasikan pada basis datauntuk membatasi data yang dapat disimpan di dalambasis data.
Jika basis data memenuhi semua batasan integritasyang dispesifikasikan pada skema basis datanya,maka basis data tersebut sudah bisa dikatakan legal.
Alif Finandhita, S.Kom 2
DBMS “memaksakan” batasan integritas data,sehingga hanya mengijinkan basis data yanglegal lah yang dapat disimpan oleh DBMS.
Batasan integritas menjamin bahwa perubahan– perubahan yang dilakukan oleh orang yangmemang mempunyai otorisasi tidak akanmelanggar konsistensi data.
Artinya bahwa data akan tetap terjaga, tetapakurat, konsisten, dan handal.
DBMS “memaksakan” batasan integritas data,sehingga hanya mengijinkan basis data yanglegal lah yang dapat disimpan oleh DBMS.
Batasan integritas menjamin bahwa perubahan– perubahan yang dilakukan oleh orang yangmemang mempunyai otorisasi tidak akanmelanggar konsistensi data.
Artinya bahwa data akan tetap terjaga, tetapakurat, konsisten, dan handal.
Alif Finandhita, S.Kom 3
Batasan integritas menjaga terjadinya kerusakanterhadap database yang dapat terjadi denganmemastikan bahwa perubahan terhadap databasetidak menyebabkan terjadinya inkonsistensi data
Integritas data mengacu ke konsistensi dan akurasidata yang disimpan di dalam basis data.
Batasan integritas dispesifikasikan dan “dipaksakan”pada waktu yang berbeda, yaitu : Ketika DBA mendefinisikan skema basis data melalui DDL,
DBA menspesifikasikan batasan / konstrain integritas yangharus selalu dipenuhi.
Batasan integritas menjaga terjadinya kerusakanterhadap database yang dapat terjadi denganmemastikan bahwa perubahan terhadap databasetidak menyebabkan terjadinya inkonsistensi data
Integritas data mengacu ke konsistensi dan akurasidata yang disimpan di dalam basis data.
Batasan integritas dispesifikasikan dan “dipaksakan”pada waktu yang berbeda, yaitu : Ketika DBA mendefinisikan skema basis data melalui DDL,
DBA menspesifikasikan batasan / konstrain integritas yangharus selalu dipenuhi.
Alif Finandhita, S.Kom 4
Ketika aplikasi basis data dijalankan, DBMSmelakukan pemeriksaan untuk mencegah terjadinyapelanggaran dan mencegah perubahan – perubahanyang melanggar konstrain integritas yang telahditentukan sebelumnya.
Dalam kondisi tertentu, DBMS tidak melarang suatuaksi yang dapat menimbulkan pelanggaran, namunkemudian DBMS membuat tindakan – tindakanotomatis untuk tetap memenuhi konstrain integritas,dengan demikian dijamin perubahan tidak akanmengganggu integritas data.
Ketika aplikasi basis data dijalankan, DBMSmelakukan pemeriksaan untuk mencegah terjadinyapelanggaran dan mencegah perubahan – perubahanyang melanggar konstrain integritas yang telahditentukan sebelumnya.
Dalam kondisi tertentu, DBMS tidak melarang suatuaksi yang dapat menimbulkan pelanggaran, namunkemudian DBMS membuat tindakan – tindakanotomatis untuk tetap memenuhi konstrain integritas,dengan demikian dijamin perubahan tidak akanmengganggu integritas data.
Alif Finandhita, S.Kom 5
Integritas data dapat dikelompokkan menjadi duabagian : Integritas data yang berada di dalam relasi, yaitu
Integritas entitas (Entity Integrity) dan Integritas Domain(Domain Integrity).
Integritas data yang berada di luar relasi, yaitu Integritasreferensial (Referential Integrity).
Selain itu juga terdapat aturan integritas untukmemenuhi aturan – tertentu yang ditentukan sendiridi dalam suatu perusahaan (Enterprise), disebutdengan Integritas perusahaan (EnterpriseIntegrity/User Defined Integrity)
Integritas data dapat dikelompokkan menjadi duabagian : Integritas data yang berada di dalam relasi, yaitu
Integritas entitas (Entity Integrity) dan Integritas Domain(Domain Integrity).
Integritas data yang berada di luar relasi, yaitu Integritasreferensial (Referential Integrity).
Selain itu juga terdapat aturan integritas untukmemenuhi aturan – tertentu yang ditentukan sendiridi dalam suatu perusahaan (Enterprise), disebutdengan Integritas perusahaan (EnterpriseIntegrity/User Defined Integrity)
Alif Finandhita, S.Kom 6
Secara garis besar, di dalam model relasionalIntegritas data meliputi :
Integritas Entitas (Entity Integrity)
Integritas Domain (Domain Integrity)
Integritas Referensial (Referential Integrity)
Integritas Enterprise (Enterprise/User DefinedIntegrity
Secara garis besar, di dalam model relasionalIntegritas data meliputi :
Integritas Entitas (Entity Integrity)
Integritas Domain (Domain Integrity)
Integritas Referensial (Referential Integrity)
Integritas Enterprise (Enterprise/User DefinedIntegrity
Alif Finandhita, S.Kom 7
Integritas entitas mendefinisikan sebuah barissebagai sebuah entitas yang unik untuk suatutabel.
Integritas entitas memaksa integritas daricolumn atau primary key dari suatu tabel melaluiindex, unique, constrains, primary key, dimanaprimary key tidak boleh null.
Dalam Integritas entitas, tidak ada baris yangduplikat di dalam satu tabel.
Integritas entitas mendefinisikan sebuah barissebagai sebuah entitas yang unik untuk suatutabel.
Integritas entitas memaksa integritas daricolumn atau primary key dari suatu tabel melaluiindex, unique, constrains, primary key, dimanaprimary key tidak boleh null.
Dalam Integritas entitas, tidak ada baris yangduplikat di dalam satu tabel.
Alif Finandhita, S.Kom 8
create table Pembelian(IDPembelian smallint ,IDModel smallint,DeskripsiModel varchar(40),primary key (IDPembelian));
create table Pembelian(IDPembelian smallint ,IDModel smallint,DeskripsiModel varchar(40),primary key (IDPembelian)unique (ID Pembelian, ID Model));
create table Pembelian(IDPembelian smallint ,IDModel smallint,DeskripsiModel varchar(40),primary key (IDPembelian));
create table Pembelian(IDPembelian smallint ,IDModel smallint,DeskripsiModel varchar(40),primary key (IDPembelian)unique (ID Pembelian, ID Model));
Alif Finandhita, S.Kom 9
Domain adalah nilai – nilai yang dimungkinkandiasosiasikan dengan setiap atribut.
Integritas domain merupakan validasi dari masukan untuksebuah kolom.
Kita dapat memaksa integritas domain denganmembatasi tipe (melalui data types), format (melalui checkconstraints dan rules), atau range nilai – nilai yangmungkin (melalui Foreign Key Constrains, CheckConstraints, Default Definitions dan Rules)
Dengan integritas domain, tidak ada data yang melanggarjangkauan nilai di tiap kolom data.
Domain adalah nilai – nilai yang dimungkinkandiasosiasikan dengan setiap atribut.
Integritas domain merupakan validasi dari masukan untuksebuah kolom.
Kita dapat memaksa integritas domain denganmembatasi tipe (melalui data types), format (melalui checkconstraints dan rules), atau range nilai – nilai yangmungkin (melalui Foreign Key Constrains, CheckConstraints, Default Definitions dan Rules)
Dengan integritas domain, tidak ada data yang melanggarjangkauan nilai di tiap kolom data.
Alif Finandhita, S.Kom 10
Pada saat membuat tabel (“Create Table”), kita bisamencegah kolom bernilai Null dengan menggunakankonstrain “Not Null” yang berlaku untuk kolom.
Bila tidak dinyatakan, SQL akan mengasumsikankondisi Null diijinkan, kecuali bila suatu kolomdispesifikasikan sebagai bagian dari kunci utama yangdinyatakan dengan Primary Key.
Supaya integritas entitas tetap terjaga, maka lebihbaik jika konstrain “Not Null” dinyatakan.
Pada saat membuat tabel (“Create Table”), kita bisamencegah kolom bernilai Null dengan menggunakankonstrain “Not Null” yang berlaku untuk kolom.
Bila tidak dinyatakan, SQL akan mengasumsikankondisi Null diijinkan, kecuali bila suatu kolomdispesifikasikan sebagai bagian dari kunci utama yangdinyatakan dengan Primary Key.
Supaya integritas entitas tetap terjaga, maka lebihbaik jika konstrain “Not Null” dinyatakan.
Alif Finandhita, S.Kom 11
Jenis domain yang dapat dimiliki oleh suatuatribut : Karakter bebas Alphanumerik Alphabet Numerik
Pemeliharaan integritas domain : Pendefinisian skema / struktur tabel Pemanfaatan properti field Penerapan proses validasi pada pemasukan data
Jenis domain yang dapat dimiliki oleh suatuatribut : Karakter bebas Alphanumerik Alphabet Numerik
Pemeliharaan integritas domain : Pendefinisian skema / struktur tabel Pemanfaatan properti field Penerapan proses validasi pada pemasukan data
Alif Finandhita, S.Kom 12
create table biografi(idpenulis smallint unsigned not null,tahunlahir year not null,kotalahir varchar(40) not null default‘kosong’);
create domain nilai numeric(3,2)constraint value-test check(value > = 0.00)
create table biografi(idpenulis smallint unsigned not null,tahunlahir year not null,kotalahir varchar(40) not null default‘kosong’);
create domain nilai numeric(3,2)constraint value-test check(value > = 0.00)
Alif Finandhita, S.Kom 13
Integritas Referensial memastikan bahwa seluruh nilaidari foreign key cocok dengan nilai primary key yangdihubungkannya.
Integritas Referensial adalah dasar relasi antar tabelyaitu antara foreign key dengan primary key.
Data pada foreign key harus sesuai dengan primarykey. Artinya : Tipe data dan ukuran sama Konsistensi tetap terjaga ketika ada penghapusan,
pergantian data dan penambahan data pada tabel
Integritas Referensial memastikan bahwa seluruh nilaidari foreign key cocok dengan nilai primary key yangdihubungkannya.
Integritas Referensial adalah dasar relasi antar tabelyaitu antara foreign key dengan primary key.
Data pada foreign key harus sesuai dengan primarykey. Artinya : Tipe data dan ukuran sama Konsistensi tetap terjaga ketika ada penghapusan,
pergantian data dan penambahan data pada tabel
Alif Finandhita, S.Kom 14
Ketika integritas referensial ini dilaksanakanmaka akan mengecek : Penambahan record apakah record yang
ditambahkan pada foreign key ada dalam primarykey atau tidak.
Perubahan data pada primary key apakah akanmempengaruhi terhadap foreign key atau tidak.
Ketika integritas referensial ini dilaksanakanmaka akan mengecek : Penambahan record apakah record yang
ditambahkan pada foreign key ada dalam primarykey atau tidak.
Perubahan data pada primary key apakah akanmempengaruhi terhadap foreign key atau tidak.
Alif Finandhita, S.Kom 15
Opsi ketika suatu record pada tabel yangdireferensi oleh suatu foreign key dihapus ataudiganti nilainya : [ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ]
ON DELETE, merupakan tindakan pada tabelyang direferensi terjadi penghapusan record.
ON UPDATE, merupakan tindakan apabila datatabel yang direferensi mengalami perubahannilai record.
Opsi ketika suatu record pada tabel yangdireferensi oleh suatu foreign key dihapus ataudiganti nilainya : [ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ]
ON DELETE, merupakan tindakan pada tabelyang direferensi terjadi penghapusan record.
ON UPDATE, merupakan tindakan apabila datatabel yang direferensi mengalami perubahannilai record.
Alif Finandhita, S.Kom 16
Tindakan yang dapat diatur pada ON DELETEmaupun ON UPDATE ada dua, yaitu : CASCADE NO ACTION
ON UPDATE CASCADE Jika nilai primary key pada tabel yang direferensi
diganti maka foreign key pada tabel yangmereferensi akan disamakan nilainya denganprimary key pada tabel yang direferensi.
Tindakan yang dapat diatur pada ON DELETEmaupun ON UPDATE ada dua, yaitu : CASCADE NO ACTION
ON UPDATE CASCADE Jika nilai primary key pada tabel yang direferensi
diganti maka foreign key pada tabel yangmereferensi akan disamakan nilainya denganprimary key pada tabel yang direferensi.
Alif Finandhita, S.Kom 17
ON DELETE CASCADE Jika nilai primary key pada tabel yang direferensi dihapus maka
semua record yang nilai foreign key-nya=primary key pada tabelyang direferensi dimana recordnya yang dihapus akan turutterhapus.
ON UPDATE NO ACTION Jika nilai primary key pada tabel yang direferensi diganti maka
foreign key pada tabel yang mereferensi nilainya tidak ikutberubah
ON DELETE NO ACTION Jika nilai Primary Key pada tabel yang direferensi dihapus maka
semua record yang nilai foreign key-nya=primary key tidak ikutdihapus
ON DELETE CASCADE Jika nilai primary key pada tabel yang direferensi dihapus maka
semua record yang nilai foreign key-nya=primary key pada tabelyang direferensi dimana recordnya yang dihapus akan turutterhapus.
ON UPDATE NO ACTION Jika nilai primary key pada tabel yang direferensi diganti maka
foreign key pada tabel yang mereferensi nilainya tidak ikutberubah
ON DELETE NO ACTION Jika nilai Primary Key pada tabel yang direferensi dihapus maka
semua record yang nilai foreign key-nya=primary key tidak ikutdihapus
Alif Finandhita, S.Kom 18
create table customer(customer-name char(20),customer-street char(30),customer-city char(30),primary key (customer-name))
create table branch(branch-name char(15),branch-city char(30),assets integer,primary key (branch-name))
Alif Finandhita, S.Kom 19
create table customer(customer-name char(20),customer-street char(30),customer-city char(30),primary key (customer-name))
create table branch(branch-name char(15),branch-city char(30),assets integer,primary key (branch-name))
create table account(account-number char(10),branch-name char(15),balance integer,primary key (account-number),foreign key (branch-name) references branch)
create table depositor(customer-name char(20),account-number char(10),primary key (customer-name, account-number),foreign key (account-number) references account,foreign key (customer-name) references customer)on delete cascade on update cascade
Alif Finandhita, S.Kom 20
create table account(account-number char(10),branch-name char(15),balance integer,primary key (account-number),foreign key (branch-name) references branch)
create table depositor(customer-name char(20),account-number char(10),primary key (customer-name, account-number),foreign key (account-number) references account,foreign key (customer-name) references customer)on delete cascade on update cascade
Integritas Enterprise / User DefinedIntegration mengizinkan kita untukmenentukan spesific business rules sendiriyang tidak sama pada katogeri integritasyang lainnya
Integritas Enterprise / User DefinedIntegration mengizinkan kita untukmenentukan spesific business rules sendiriyang tidak sama pada katogeri integritasyang lainnya
Alif Finandhita, S.Kom 21
Prinsip Pengamanan :
Kerahasiaan menjamin perlindungan akses informasi Integritas menjamin bahwa informasi tidak dapat
diubah dan tetap konsisten Ketersediaan menjamin kesiapan akses informasi
kerahasiaan
SecurityPrinciples
Prinsip Pengamanan :
Kerahasiaan menjamin perlindungan akses informasi Integritas menjamin bahwa informasi tidak dapat
diubah dan tetap konsisten Ketersediaan menjamin kesiapan akses informasi
Alif Finandhita, S.Kom 22
Integritas ketersediaan
SecurityPrinciples
Contoh : Kerahasiaan:
catatan medis pasien harus tertutup untuk umum Integritas:
catatan medis harus benar Ketersediaan:
catatan medis pasien dapat diakses saatdibutuhkan untuk pengobatan
Contoh : Kerahasiaan:
catatan medis pasien harus tertutup untuk umum Integritas:
catatan medis harus benar Ketersediaan:
catatan medis pasien dapat diakses saatdibutuhkan untuk pengobatan
Alif Finandhita, S.Kom 23
Pengamanan data merupakan mekanisme untukmelindungi sistem basis data dari aksi yangdisengaja (mis : percobaan pencurian /modifikasi data oleh pihak yang tidakberwenang) dan tidak disengaja (mis: bencanaalam, kebakaran, dll)
Kerusakan yang biasa terjadi : kehilangankerahasiaan, kehilangan kebebasan (privacy),kehilangan keutuhan data (integrity), kehilanganketersediaan data (availability).
Pengamanan data merupakan mekanisme untukmelindungi sistem basis data dari aksi yangdisengaja (mis : percobaan pencurian /modifikasi data oleh pihak yang tidakberwenang) dan tidak disengaja (mis: bencanaalam, kebakaran, dll)
Kerusakan yang biasa terjadi : kehilangankerahasiaan, kehilangan kebebasan (privacy),kehilangan keutuhan data (integrity), kehilanganketersediaan data (availability).
Alif Finandhita, S.Kom 24
Ancaman potensial terhadap sistem komputer :
DBMS dan Software Aplikasi : Kesalahan dalam mekanisme pengamanan dengan
pemberian hak akses yang lebih besar Pengubahan atau pencurian program
Jaringan Komunikasi : Penyadapan Pemutusan kabel Interfensi Gelombang dan radiasi
Ancaman potensial terhadap sistem komputer :
DBMS dan Software Aplikasi : Kesalahan dalam mekanisme pengamanan dengan
pemberian hak akses yang lebih besar Pengubahan atau pencurian program
Jaringan Komunikasi : Penyadapan Pemutusan kabel Interfensi Gelombang dan radiasi
Alif Finandhita, S.Kom 25
Data / Database Administrator : Kebijakan pengamanan dan prosedur yang lemah
Hardware : Bencana alam Kehilangan data karena listrik mati Pencurian peralatan
Data / Database Administrator : Kebijakan pengamanan dan prosedur yang lemah
Hardware : Bencana alam Kehilangan data karena listrik mati Pencurian peralatan
Alif Finandhita, S.Kom 26
Database : Pengubahan yang tidak sah atau penduplikasian data Pencurian data
User : Menggunakan hak akses orang lain Viewing dan penutupan data yang tidak sah Kekurangan staf yang terlatih Memasukkan virus/worm/trojan.
Programmer : Membuat jebakan (trapdoor) Mengubah program.
Database : Pengubahan yang tidak sah atau penduplikasian data Pencurian data
User : Menggunakan hak akses orang lain Viewing dan penutupan data yang tidak sah Kekurangan staf yang terlatih Memasukkan virus/worm/trojan.
Programmer : Membuat jebakan (trapdoor) Mengubah program.
Alif Finandhita, S.Kom 27
Langkah – langkah pengamanan data :
Level DBMS : Menerapkan mekanisme otorisasi dan autentifikasi
untuk mengatur hanya user tertentu saja yang dapatmengakses data sesuai dengan yang dibutuhkan
Level Sistem Operasi : Super user pada sistem operasi dapat melakukan
apapun terhadap database. Oleh karena itudibutuhkan mekanisme pengamanan yang baik bagisistem operasi
Langkah – langkah pengamanan data :
Level DBMS : Menerapkan mekanisme otorisasi dan autentifikasi
untuk mengatur hanya user tertentu saja yang dapatmengakses data sesuai dengan yang dibutuhkan
Level Sistem Operasi : Super user pada sistem operasi dapat melakukan
apapun terhadap database. Oleh karena itudibutuhkan mekanisme pengamanan yang baik bagisistem operasi
Alif Finandhita, S.Kom 28
Level Jaringan : Setiap data yang dikirimkan melalui network harus
dienkripsi untuk menghindari terjadinya pembacaan dataoleh orang yang tidak behak (Eavesdropping) danpenyalahgunaan hak akses/berpura pura sebagaiauthorized user (masquerading)
Level Fisik : Akses terhadap fisik komputer memungkinkan perusakan
data oleh penyusup. Oleh karena itu diperlukanmekanisme konvensional untuk mengamankan fisikkomputer (gembok / kunci).
Komputer juga harus terlindungi dari kejadian bencanaalam seperti kebakaran, banjir, gempa, dll.
Level Jaringan : Setiap data yang dikirimkan melalui network harus
dienkripsi untuk menghindari terjadinya pembacaan dataoleh orang yang tidak behak (Eavesdropping) danpenyalahgunaan hak akses/berpura pura sebagaiauthorized user (masquerading)
Level Fisik : Akses terhadap fisik komputer memungkinkan perusakan
data oleh penyusup. Oleh karena itu diperlukanmekanisme konvensional untuk mengamankan fisikkomputer (gembok / kunci).
Komputer juga harus terlindungi dari kejadian bencanaalam seperti kebakaran, banjir, gempa, dll.
Alif Finandhita, S.Kom 29
Otorisasi merupakan pemberian hak yang istimewaterhadap user sehingga dapat mempunyai akses yangsah terhadap sistem atau objek sistem.
Bentuk otorisasi dalam basis data : Read authorization – mengizinkan pembacaan data, tapi
tidak diizinkan modifikasi data. Insert authorization – mengizinkan penambahan data
baru, tapi tidak diizinkan modifikasi data yang sudah ada Update authorization – mengizinkan modifikasi, tapi
tidak diizinkan menghapus data Delete authorization – mengizinkan penghapusan data
Otorisasi merupakan pemberian hak yang istimewaterhadap user sehingga dapat mempunyai akses yangsah terhadap sistem atau objek sistem.
Bentuk otorisasi dalam basis data : Read authorization – mengizinkan pembacaan data, tapi
tidak diizinkan modifikasi data. Insert authorization – mengizinkan penambahan data
baru, tapi tidak diizinkan modifikasi data yang sudah ada Update authorization – mengizinkan modifikasi, tapi
tidak diizinkan menghapus data Delete authorization – mengizinkan penghapusan data
Alif Finandhita, S.Kom 30
Bentuk otorisasi untuk modifikasi skema basisdata : Index authorization – mengizinkan pembuatan dan
penghapusan index. Resources authorization – mengizinkan pembuatan
relasi baru. Alteration authorization – mengizinkan
penambahan atau penghapusan suatu atribut didalam suatu relasi.
Drop authorization – mengizinkan penghapusansuatu relasi.
Bentuk otorisasi untuk modifikasi skema basisdata : Index authorization – mengizinkan pembuatan dan
penghapusan index. Resources authorization – mengizinkan pembuatan
relasi baru. Alteration authorization – mengizinkan
penambahan atau penghapusan suatu atribut didalam suatu relasi.
Drop authorization – mengizinkan penghapusansuatu relasi.
Alif Finandhita, S.Kom 31
View adalah objek basis data yang berisi perintahquery ke basis data.
Setiap kali sebuah view diaktifkan, pemakai akanselalu melihat hasil querynya.
Berbeda dengan tabel, data yang ditampilkan didalam view tidak bisa diubah.
View menyediakan mekanisme pengamanan yangfleksibel namun kuat dengan cara menyembunyikansebagian basis data dari user lain.
View adalah objek basis data yang berisi perintahquery ke basis data.
Setiap kali sebuah view diaktifkan, pemakai akanselalu melihat hasil querynya.
Berbeda dengan tabel, data yang ditampilkan didalam view tidak bisa diubah.
View menyediakan mekanisme pengamanan yangfleksibel namun kuat dengan cara menyembunyikansebagian basis data dari user lain.
Alif Finandhita, S.Kom 32
User dapat diberikan otorisasi pada View, tanpa harusdiberikan otorisasi terhadap relasi yang digunakan didalam definisi view.
View dapat meningkatkan keamanan data denganmengizinkan user untuk hanya dapat mengakses datasesuai dengan pekerjaannya masing – masing.
Kombinasi antara level keamanan di tingkat relasionaldengan level keamanan di tingkat view dapatdigunakan untuk membatasi hak akses user, sehinggamereka hanya mengakses data sesuai dengankebutuhannya saja.
User dapat diberikan otorisasi pada View, tanpa harusdiberikan otorisasi terhadap relasi yang digunakan didalam definisi view.
View dapat meningkatkan keamanan data denganmengizinkan user untuk hanya dapat mengakses datasesuai dengan pekerjaannya masing – masing.
Kombinasi antara level keamanan di tingkat relasionaldengan level keamanan di tingkat view dapatdigunakan untuk membatasi hak akses user, sehinggamereka hanya mengakses data sesuai dengankebutuhannya saja.
Alif Finandhita, S.Kom 33
Contoh View :
Misalkan seorang pegawai bank membutuhkan informasi nama –nama nasabah dari setiap cabang yang ada, tetapi tidak diizinkanuntuk mengetahui secara spesifik jumlah pinjamannya.
Penyelesaian : tolak akses langsung ke relasi pinjaman , tapi berikanakses terhadap view nasabah-pinjam yang hanya terdiri dari namanasabah beserta cabangnya dimana mereka melakukan pinjaman
View nasabah-pinjam didefinisikan di dalam SQL sebagai berikut :create view nasabah-pinjam as
select nama-cabang, nama-pelangganfrom peminjam, pinjamanwhere peminjam.no-pinjaman = pinjaman.no-pinjaman
Contoh View :
Misalkan seorang pegawai bank membutuhkan informasi nama –nama nasabah dari setiap cabang yang ada, tetapi tidak diizinkanuntuk mengetahui secara spesifik jumlah pinjamannya.
Penyelesaian : tolak akses langsung ke relasi pinjaman , tapi berikanakses terhadap view nasabah-pinjam yang hanya terdiri dari namanasabah beserta cabangnya dimana mereka melakukan pinjaman
View nasabah-pinjam didefinisikan di dalam SQL sebagai berikut :create view nasabah-pinjam as
select nama-cabang, nama-pelangganfrom peminjam, pinjamanwhere peminjam.no-pinjaman = pinjaman.no-pinjaman
Alif Finandhita, S.Kom 34
Pegawai tersebut diizinkan untuk melihat viewdengan SQL :Select * from nasabah-pinjam
Ketika pemroses query menterjemahkan hasilnya kedalam query yang terdapat di dalam relasi aktualnyadi basis data, si pegawai memperoleh query yang adadi peminjam dan pinjaman.
Pada saat pegawai bank tersebut melakukan query,harus dicek dulu otorisasinya sebelum pemrosesanquery me-replace view oleh definisi viewnya.
Pegawai tersebut diizinkan untuk melihat viewdengan SQL :Select * from nasabah-pinjam
Ketika pemroses query menterjemahkan hasilnya kedalam query yang terdapat di dalam relasi aktualnyadi basis data, si pegawai memperoleh query yang adadi peminjam dan pinjaman.
Pada saat pegawai bank tersebut melakukan query,harus dicek dulu otorisasinya sebelum pemrosesanquery me-replace view oleh definisi viewnya.
Alif Finandhita, S.Kom 35
Pembuatan view tidak membutuhkan resourceauthorization karena sesungguhnya tidak ada relasiyang dibuat.
Pembuat view hanya memperoleh hak akses sesuaidengan yang diberikannya, tidak ada otorisasi lainnyadiluar dari yang dia miliki.
Misalkan, jika si pembuat view nasabah-pinjam hanyamemiliki read authorization pada relasi peminjamdan pinjaman, maka dia hanya memperoleh otorisasitersebut saja pada nasabah –pinjam.
Pembuatan view tidak membutuhkan resourceauthorization karena sesungguhnya tidak ada relasiyang dibuat.
Pembuat view hanya memperoleh hak akses sesuaidengan yang diberikannya, tidak ada otorisasi lainnyadiluar dari yang dia miliki.
Misalkan, jika si pembuat view nasabah-pinjam hanyamemiliki read authorization pada relasi peminjamdan pinjaman, maka dia hanya memperoleh otorisasitersebut saja pada nasabah –pinjam.
Alif Finandhita, S.Kom 36
Otorisasi dari satu user ke user lainnya dapatdirepresentasikan ke dalam suatu grafik
Node dari grafik ini adalah user.
Root-nya adalah Database Administrator(DBA)
Misalkan grafik untuk udpate authorizationpada relasi pinjaman
Otorisasi dari satu user ke user lainnya dapatdirepresentasikan ke dalam suatu grafik
Node dari grafik ini adalah user.
Root-nya adalah Database Administrator(DBA)
Misalkan grafik untuk udpate authorizationpada relasi pinjaman
Alif Finandhita, S.Kom 37
Bentuk Ui –> Uj mengindikasikan bahwa userUi memiliki otorisasi untuk update pada relasipinjaman terhadap Uj.
Alif Finandhita, S.Kom 38
U1 U4
U2 U5
U3
DBA
Pernyataan grant digunakan untuk memberikanotorisasi :
grant <daftar privilege>on <nama relasi / nama view> to <daftaruser>
<daftar user> adalah : Id-user Public, yang memungkinkan semua daftar user yang
valid untuk menggunakan hak akses yang diberikan Role
39
Pernyataan grant digunakan untuk memberikanotorisasi :
grant <daftar privilege>on <nama relasi / nama view> to <daftaruser>
<daftar user> adalah : Id-user Public, yang memungkinkan semua daftar user yang
valid untuk menggunakan hak akses yang diberikan Role
Pernyataan grant digunakan untuk memberikanotorisasi :
grant <daftar privilege>on <nama relasi / nama view> to <daftaruser>
<daftar user> adalah : Id-user Public, yang memungkinkan semua daftar user yang
valid untuk menggunakan hak akses yang diberikan Role
40
Pernyataan grant digunakan untuk memberikanotorisasi :
grant <daftar privilege>on <nama relasi / nama view> to <daftaruser>
<daftar user> adalah : Id-user Public, yang memungkinkan semua daftar user yang
valid untuk menggunakan hak akses yang diberikan Role
Select :Mengizinkan user untuk melihat data yang adadi relasi, atau kemampuan untuk melakukanquery dengan menggunakan view Contoh : memberikan hak akses select authorization
bagi user U1, U2, dan U3 pada relasi cabang. “grantselect on cabang to U1, U2, U3”
Insert :Kemampuan untuk menambahkan record / tuplebaru
41
Select :Mengizinkan user untuk melihat data yang adadi relasi, atau kemampuan untuk melakukanquery dengan menggunakan view Contoh : memberikan hak akses select authorization
bagi user U1, U2, dan U3 pada relasi cabang. “grantselect on cabang to U1, U2, U3”
Insert :Kemampuan untuk menambahkan record / tuplebaru
Update :Kemampuan untuk update data denganmenggunakan pernyataan SQL
Delete :Kemampuan untuk menghapus record / tuple
References :Kemampuan untuk mendeklarasikan foreignkey pada saat membentuk suatu relasi
42
Update :Kemampuan untuk update data denganmenggunakan pernyataan SQL
Delete :Kemampuan untuk menghapus record / tuple
References :Kemampuan untuk mendeklarasikan foreignkey pada saat membentuk suatu relasi
Usage :Pada SQL-92, memungkinkan user untukmenggunakan domain tertentu
All Privileges :Kemampuan untuk menggunakan semua hakakses yang ada
43
Usage :Pada SQL-92, memungkinkan user untukmenggunakan domain tertentu
All Privileges :Kemampuan untuk menggunakan semua hakakses yang ada
Di dalam SQL seorang DBA juga dapat memberikanhak akses kepada user tertentu untuk melakukanpemberian hak akses terhadap user lainnya denganmenggunakan “with grant option”.
Contoh :“grant select on cabang to U1 with grant option”
Contoh di atas memberikan hak akses kepada U1untuk melakukan perintah select pada relasi cabangdan memperbolehkan U1 untuk memberikan hakakses tersebut kepada user lainnya.
44
Di dalam SQL seorang DBA juga dapat memberikanhak akses kepada user tertentu untuk melakukanpemberian hak akses terhadap user lainnya denganmenggunakan “with grant option”.
Contoh :“grant select on cabang to U1 with grant option”
Contoh di atas memberikan hak akses kepada U1untuk melakukan perintah select pada relasi cabangdan memperbolehkan U1 untuk memberikan hakakses tersebut kepada user lainnya.
Role memungkinkan hak yang samadiberikan kepada sekelompok pemakai sekalisaja dengan membuat role yang sesuai.
Hak akses dapat diberikan atau dicabut dariroles, sebagaimana halnya pada user
Roles dapat diberikan kepada beberapa userdan bahkan kepada role lainnya.
45
Role memungkinkan hak yang samadiberikan kepada sekelompok pemakai sekalisaja dengan membuat role yang sesuai.
Hak akses dapat diberikan atau dicabut dariroles, sebagaimana halnya pada user
Roles dapat diberikan kepada beberapa userdan bahkan kepada role lainnya.
Roles yang didukung oleh standar SQL 99 :
create role tellercreate role manajer
grant select on cabang to tellergrant update (jumlah) on account to tellergrant all privileges on account to manajer
grant teller to manajer
grant teller to andri, desigrant manajer to alif
46
Roles yang didukung oleh standar SQL 99 :
create role tellercreate role manajer
grant select on cabang to tellergrant update (jumlah) on account to tellergrant all privileges on account to manajer
grant teller to manajer
grant teller to andri, desigrant manajer to alif
Pernyataan revoke digunakan untuk pencabutan otorisasihak akses
revoke <daftar privilege>on <nama relasi / nama view>from <daftar user> [restrict|cascade]
Contoh :revoke selecton cabangfrom U1,U2, U3 cascade
Pencabutan hak akses dari seorang user dapatmenyebabkan user lainnya juga kehilangan hak akses itu(cascade)
47
Pernyataan revoke digunakan untuk pencabutan otorisasihak akses
revoke <daftar privilege>on <nama relasi / nama view>from <daftar user> [restrict|cascade]
Contoh :revoke selecton cabangfrom U1,U2, U3 cascade
Pencabutan hak akses dari seorang user dapatmenyebabkan user lainnya juga kehilangan hak akses itu(cascade)
<daftar privilege> bisa dibuat menjadi all untuk mencabutsemua hak akses yang sedang dipegang oleh user yangbersangkutan.
Jika <daftar user> meliputi public maka semua user akankehilangan hak aksesnya.
Jika hak akses yang sama diberikan dua kali untukpengguna yang sama oleh pemberi otoritas yang berbeda,pengguna dapat mempertahankan hak aksesnya setelahpencabutan.
Semua hak akses yang bergantung pada hak akses yangdicabut maka akan ikut tercabut pula hak aksesnya
48
<daftar privilege> bisa dibuat menjadi all untuk mencabutsemua hak akses yang sedang dipegang oleh user yangbersangkutan.
Jika <daftar user> meliputi public maka semua user akankehilangan hak aksesnya.
Jika hak akses yang sama diberikan dua kali untukpengguna yang sama oleh pemberi otoritas yang berbeda,pengguna dapat mempertahankan hak aksesnya setelahpencabutan.
Semua hak akses yang bergantung pada hak akses yangdicabut maka akan ikut tercabut pula hak aksesnya
Audit trail adalah log dari semua perubahan(insert/delete/update) terhadap basis data bersamaandengan informasi seperti user yang mana yangmelakukan perubahan, dan kapan perubahantersebut dilakukan
Digunakan untuk melacak kalau perubahan data yangtidak sesuai (palsu/keliru)
Dapat diimplementasikan dengan menggunakanTrigger , tapi banyak juga DBMS yang memberikandukungan langsung untuk proses audit
49
Audit trail adalah log dari semua perubahan(insert/delete/update) terhadap basis data bersamaandengan informasi seperti user yang mana yangmelakukan perubahan, dan kapan perubahantersebut dilakukan
Digunakan untuk melacak kalau perubahan data yangtidak sesuai (palsu/keliru)
Dapat diimplementasikan dengan menggunakanTrigger , tapi banyak juga DBMS yang memberikandukungan langsung untuk proses audit
Data dapat dienkripsi pada saat ketentuan padaotorisasi database tidak memberikan perlindunganyang memadai .
Teknik enkripsi yang baik : Relatif mudah bagi user yang mempunyai hak akses untuk
melakukan enkripsi dan deskripsi data Skema enkripsi tidak tergantung pada kerahasiaan
algoritmanya, tetapi pada kerahasiaan parameter darialgoritmanya yang disebut dengan kunci enkripsi(encryption key)
Menyulitkan penyusup untuk dapat mengetahui kuncienkripsi yang digunakan
50
Data dapat dienkripsi pada saat ketentuan padaotorisasi database tidak memberikan perlindunganyang memadai .
Teknik enkripsi yang baik : Relatif mudah bagi user yang mempunyai hak akses untuk
melakukan enkripsi dan deskripsi data Skema enkripsi tidak tergantung pada kerahasiaan
algoritmanya, tetapi pada kerahasiaan parameter darialgoritmanya yang disebut dengan kunci enkripsi(encryption key)
Menyulitkan penyusup untuk dapat mengetahui kuncienkripsi yang digunakan
Data Encryption Standard (DES) : Menukar karakter dan mengaturnya kembali
berdasarkan kunci enkripsi yang disediakan untukpengguna yang memiliki hak akses melaluimekanisme yang aman. Skema ini tidak terlalu amankarena keynya yang harus dishare.
Andvance Encryption Standard (AES) : Standar yang lebih baru untuk menggantikan DES,
dan berdasarkan algortima Rijndael, tapi jugatergantung dari key rahasianya yang harus dishare.
51
Data Encryption Standard (DES) : Menukar karakter dan mengaturnya kembali
berdasarkan kunci enkripsi yang disediakan untukpengguna yang memiliki hak akses melaluimekanisme yang aman. Skema ini tidak terlalu amankarena keynya yang harus dishare.
Andvance Encryption Standard (AES) : Standar yang lebih baru untuk menggantikan DES,
dan berdasarkan algortima Rijndael, tapi jugatergantung dari key rahasianya yang harus dishare.
Public Key Encryption : Masing – masing user mempunyai dua kunci :
▪ Public Key : key yang dipublish untuk melakukan enkripsi data, tapitidak untuk deskripsi data
▪ Private Key : key yang hanya diketahui oleh user tertentu, dandigunakan untuk mendeskripsikan data
Skema enkripsi tersebut dibuat sedemikian rupa sehinggasangat sulit bagi orang lain untuk mendeskripsikan datayang hanya diberikan oleh public key
Skema enkripsi public key RSA berdasarkan padakesulitan untuk memfaktorkan sejumlah besar digit(100 an digit) ke dalam komponen – komponenutamanya
52
Public Key Encryption : Masing – masing user mempunyai dua kunci :
▪ Public Key : key yang dipublish untuk melakukan enkripsi data, tapitidak untuk deskripsi data
▪ Private Key : key yang hanya diketahui oleh user tertentu, dandigunakan untuk mendeskripsikan data
Skema enkripsi tersebut dibuat sedemikian rupa sehinggasangat sulit bagi orang lain untuk mendeskripsikan datayang hanya diberikan oleh public key
Skema enkripsi public key RSA berdasarkan padakesulitan untuk memfaktorkan sejumlah besar digit(100 an digit) ke dalam komponen – komponenutamanya