DCL Data Control Language PENGENALAN DCL adalah bagiana
DCL (Data Control Language)
PENGENALAN � DCL adalah bagiana dari bahasa SQL yang berfungsi untuk melakukan pengontrolan data dan server databasenya, seperti manipulasi user dan hak akses (priviledges). � Yang termasuk perintah DCL 1. GRANT 2. REVOKE
GRANT : memberikan hak akses kepada sebuah user � Sintak : GRANT hak_akses ON nama_database. nama_tabel TO 'nama_user'@'lokasi_user'; hak_akses adalah privileges yang akan berikan kepada user. Hak akses berisi query yang diperbolehkan, seperti: SELECT, INSERT, UPDATE, DELETE, atau query lainnya. Jika kita ingin memberikan hak penuh untuk semua query dasar tersebut, hak_akses ini bisa diisi dengan ALL. nama_database adalah nama database yang ingin diberikan hak akses. Jika kita mengizinkan user tersebut dapat mengakses semua database yang ada, nama_database bisa ditulis dengan tanda bintang (*).
GRANT nama_tabel adalah nama tabel yang ingin diberikan hak akses. Jika kita mengizinkan user dapat menggunakan semua tabel, nama_tabel bisa ditulis dengan tanda bintang (*). nama_user adalah nama dari user yang akan diberikan hak akses. lokasi_user adalah alamat IP dari user yang ingin diberikan hak akses.
Create User � Mysql> CREATE USER ‘admin_rm'@'localhost' IDENTIFIED BY ‘rm'; Query diatas terdiri membuat user admin_rm yang harus diakses dari komputer localhost (komputer yang sama dengan server My. SQL berada), dan memberikan password ‘rm’. � Melihat daftar user mysql Mysql>SELECT user, host FROM mysql. user;
Contoh Grant mysql> grant select on rssehatselalu. data_diri to ‘admin_rm'@'localhost'; � Memberikan hak akses user admin_rm mengakses tabel data_diri yg ada di database rssehatselalu.
Contoh Grant Untuk mencoba user admin_rm, keluarlah dari root, dan masuk sebagai admin_rm: � D: My. SQLbin>mysql -u admin_rm –prm � admin_rm hanya akan melihat database rssehatselalu
Contoh Grant � Memberi akses semua tabel Mysql> CREATE USER ‘administrator'@'localhost' IDENTIFIED BY ‘adminfull'; Mysql> GRANT SELECT ON rssehatselalu. * TO administrator'@'localhost'; user administrator dapat menampilkan seluruh tabel pada database rssehatselalu.
Contoh Grant mysql> CREATE USER ‘boss'@'localhost' IDENTIFIED BY ‘bossku'; mysql> GRANT ALL ON rssehatselalu. data_diri TO ‘boss'@'localhost'; hak akses GRANT ALL, maka user boss dapat menggunakan seluruh query dasar pada tabel rssehatselalu. data_diri, seperti SELECT, UPDATE, bahkan DELETE.
Revoke � � REVOKE digunakan untuk menghapus seluruh atau salah satu hak akses saja. Sintak : REVOKE jenis_hak_akses (kolom 1, kolom 2) ON nama_database. nama_tabel FROM nama_user@lokasi_user Jenis_hak_akses adalah privileges yang akan dihapus dari user tersebut. Kita bisa membuat hak akses secara satu persatu untuk keperluan yang spesifik, atau mengisikan perintah ALL PRIVILEGES untuk menghapus seluruh hak akses. � kolom 1, kolom 2 adalah nama judul kolom yang hak aksesnya akan dicabut. Jika tidak diisi, maka dianggap query REVOKE akan menghapus pada seluruh kolom. �
Revoke � nama_database adalah nama database yang ingin dihapuskan hak aksesnya. nama_database bisa ditulis dengan tanda bintang (*) untuk merujuk kepada seluruh database. � nama_tabel adalah nama tabel yang ingin dihapuskan hak aksesnya. nama_tabel bisa ditulis dengan tanda bintang (*) untuk merujuk kepada seluruh tabel. � nama_user adalah nama dari user yang akan dihapus hak aksesnya. � lokasi_user adalah alamat IP dari user yang akan dihapus hak aksesnya.
Revoke Menghapus Akses Penuh Mysql> revoke all on *. * from admin_rm@localhost identified by ‘rm’; Mysql> revoke all on *. * from admin_ku@localhost identified by ‘ku’; Perintah diatas membuat salah satu user tidak mempunyai izin akses lagi. � aksesnya user tersebut masih dapat login ke database My. SQL tapi bisa berbuat mengakses perintah apa 2. �
Contoh Revoke Menghapus Akses Database mysql> revoke all on rssehatselalu. data_diri from admin_rm@localhost identified by ‘rm’; � Perintah diatas izin akses user pada tabel tertentu telah dicabut sehingga tidak bisa mengakses kembali.
Revoke � Menghapus Akses Kolom Sintak : revoke update(nama) on nm_db. nm_tbl from nm_user@localhost identified by ‘nm_passwd’; mysql> revoke update(nama) on rssehatselalu. data_diri from admin_rm@localhost identified by ‘rm’; Perintah diatas akan mencabut akses untuk kolom yang telah ditentukan sebelumnya.
Query Lanjut
- Slides: 15