Pada tutorial kali ini, akan dibahas mengenai
DCL. DCL sendiri merupakan singkatan dari Data Control Language yaitu bagian
inti dati SQL yang mempunyai kemampuan untuk mengatur hak akses terhadap sebuah
basis data. DCL digunakan untuk membantu mengontrol keamanan database dalam
lingkungan beberapa pengguna database, ada dua jenis perintah DCL adalah GRANT
untuk memberi hak akses dan REVOKE untuk mencabut hak akses. Hanya database
administrator/pemilik database yang dapat memberikan atau mencabuta hak
tersebut.
Disini kita menggunakan database yang sudah
dibuat pada tutorial sebelumnya yaitu database Pegawai.
LISTING PROGRAM
1. DDL
§ USE database_name;
2.
DML
§ SELECT * FROM table_name ;
3.
DCL
§
CREATE
USER[nama_user] ;
§ SET password
for [user]=PASSWORD(‘’);
§ UPDATE mysql.user set
password=PASSWORD (‘’);
§ WHERE user=’’ dan host=’’;
§
GRANT
[HAK AKSES] ON [OBJEC] TO [USER];
§
REVOKE
[HAK AKSES] ON [OBJECT] FROM [USER];
§
SHOW
GRANTS FOR [user];
§ DROP USER[user];
|
LOGIKA
PROGRAM
1. Masuk
sebagai root
Mysql –u
root
2. Menggunakan
database yang sudah dibuat pada pertemuan sebelumnya yaitu database Pegawai,
dengan mengetikkan perintah
use Pegawai;
jika
ingin melihat table apa saja yang ada di database pegawai, ketikkan perintah
show tables
; Lalu akan muncul seperti berikut :
3. Setelah itu, kita keluar dengan mengetikkan perintah
Exit
4. Lalu masuk sebagai root lagi, tetapi menggunakan database mysql karena
kita akan membuat user baru. Ketikkan perintah :
use mysql ;
setelah itu kita akan melihat tabel user, dengan menampilkan
field user dan password. Ketikkan perintah :
Select user, password from user;
5. Disini saya
akan membuat user dengan nama msy
dan password msy47. Dengan
mengetikkan perintah :
Membuat User
Create user msy@localhost;
lalu kita
lihat table user maka akan bertambah user baru yang telah kita buat :
Membuat Password
Set password for msy@localhost=password(‘msy47’);
Lalu lihat lagi tabel user :
Mengubah
Password
Update mysql.user set password=password(‘msy147’)
Where user=’msy’ dan host=’localhost’;
Pada user
msy kita akan memberikan hak akses :
Memberi Hak Akses
§ Memberi hak
akses select dari database Pegawai pada table Bank
GRANT SELECT
ON Pegawai.Bank TO msy@localhost;
Untuk
mencoba membuktikan, kita keluar dengan mengetikkan exit. Setelah itu masuk dengan user msy dengan mengetikkan perintah :
Mysql –u msy –p dengan password : msy147 .lalu tampilkan table Bank dengan mengetikkan perintah
Select * from bank;
Lalu
tampilkan table PPh :
Select * from PPh;
Maka akan
error karena untuk user msy ini hanya
diberi hak akses untuk menampilkan table bank saja pada database Pegawai.
*Untuk
memberi hak akses lagi, maka kita harus keluar dulu dari user msy tadi, dengan
mengetikkan perintah exit, lalu
masuk lagi sebagai root dan gunakan lagi database mysql.
§ Memberi hak
akses untuk field tertentu saja
GRANT SELECT (No_Pegawai), UPDATE (NPWP) ON Pegawai.PPh TO msy@localhost;
§ Memberi hak akses penuh pada msy@localhost untuk
database pegawai dan semua table
GRANT SELECT, INSERT ON Pegawai.* TO msy@localhost;
§ Memberi hak
akses penuh pda msy@localhost
GRANT ALL ON *.* TO msy@localhost;
Jika
sebelumnya tidak dapat menampilkan table PPh karena hanya diberi hak akses
untuk menampilkan table Bank saja, sekarang kiita dapat menampilkan table PPh
karena diberi hak akses penuh untuk semua table.
§ Memberi hak akses
kepada user lain
GRANT ALL PRIVILEGES ON *.* TO msy@localhost WITH GRANT OPTION;
Mencabut Hak
Akses
Setelah itu
mencabut hak akses dari msy@localhost, jika berada pada user msy kita harus
keluar dulu dan masuk sebagai root lalu gunakan lagi database mysql.
§ Mencabut hak
select, untuk database Pegawai dari ‘msy@localhost’
REVOKE SELECT ON Pegawai.* FROM msy@localhost;
§ Mencabut
semua hak akses dari ‘msy@localhost’ untuk semua database
REVOKE ALL ON *.* FROM msy@localhost;
Melihat Hak Akses
Untuk melihat
hak akses apa saja yang diberikan kepada user msy@localhost
Show grants for msy@localhost ;
Menghapus
user
Drop user mys@localhost ;
OUTPUT
(user dengan nama msy sudah tidak ada/
terhapus)