-->

MySQL : Menggunakan Komponen DCL

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)







LihatTutupKomentar