SQL : Data Control Language

Data Control Language adalah sebuah statemen atau perintah yang memampukan kita mengatur hak akses user dalam database.

Kenapa perlu diatur? karena tidak semua user boleh membuka, menambahkan, mengubah atau menghapus data. Maksud saya adalah seperti ini, jika saya seorang sales dan bisa mengakses database maka saya akan tetap duduk di kantor tidak melakukan pekerjaan apapun. Saya kemudian membuka database dan mengubah data gaji saya. Kejahatan-kejahatan sperti ini terjadi sehingga kita tidak boleh memberikan semua hak akses kepada user. Di sinilah Data control language digunakan. Data Control Language hanya memiliki 2 statement utama yakni grant dan revoke.




Data Control Language Grant


Grant memberikan hak akses ke sebuah user. Hak akses apa? semua, database, server, table, menambahkan data, mengurangi data dan menghapus data. Sehingga berhati-hatilah dalam menggunakan perintah grant ini.

person handing keys
Struktur grant adalah sebagai berikut

GRANT type_of_permission ON database_name.table_name TO 'username'@'localhost';

(untuk contoh dapat dilihat di bawah.)
@'localhost' dapat diganti dengan IP address lain. Apabila server yang digunakan bukan lokal. Biasanya hal ini dilakukan oleh perusahaan besar, karena mereka memerlukan sebuah server yang lebih kuat, cepat dan server mereka biasanya dijadikan satu.

untuk mencobanya cobalah buat user bernama eric di dalam localhost.


Membuat user baru dalam SQL


Membuat user baru sangat mudah, strukturnya hanyalah

CREATE USER 'username'@'server' identified by 'Password';

Bila diimplementasikan maka bentuknya akan menjadi sebagai berikut.

CREATE USER 'Eric'@'Localhost' identified by 'pass';
Default awal untuk user ini adalah kosong, sehingga dia tidak bisa mengakses apapun. Untuk menggunakan grant  maka dapat kita gunakan perintah Data Control Language yakni grant

GRANT select ON sales.pegawai to 'Eric'@'localhost';
Maka user dengan id 'Eric' ini dapat melakukan select pada database sales dan hanya di table pegawai saja. Untuk memberikan hak akses memasukan data maka tambahkan perintah

GRANT insert ON sales.pegawai to 'Eric'@'localhost';
Sekarang id Eric dapat memasukan data ke dalam database sales di tabel pegawai. Untuk memberikan dia semua hak akses kita tinggal memberikan grant all.

GRANT all ON sales.pegawai to 'Eric'@'localhost';
Sekarang id eric bisa insert, update, delete, select. alter, drop dan perintah lainnya. Kalau ingin memberikan semua hak akses kepada semua tabel maka gantilah nama table denga tanda bintang(*)

GRANT all ON sales.* to 'Eric'@'localhost';
Semua memiliki resikonya, jadi berhati-hatilah dalam memberikan hak akses. Grant all biasanya hanya diberika kepada database administrator dengan tujuan mereka bisa melakukan backup, melihat data apabila ada kondisi-kondisi tertentu.

police money finance funny

Data Control Language Revoke


Data Control Language Revoke digunakan untuk menghilangkan hak akses seseorang. Berkebalikan dengan grant. Tetapi memiliki struktur yang sama dengan grant.

REVOKE type_of_permission ON database_name.table_name TO 'username'@'localhost';

contoh :

REVOKE all ON sales.* to 'Eric'@'localhost';
Sisa perintah revoke akan sama dengan grant. Hanya yang perlu diingat adalah grant memberikan hak akses sedangkan revoke untuk menghilangkan hak akses.


Komentar

  1. […] Itulah data manipulation language, semoga dapat membantu. Bila ada pertanyaan silahkan taruh di kolom komentar. Untuk pembuatan tabel ada dalam Data Definition Language dan ada tipe data yang bisa dipelajari terlebih dahulu. Berikutnya kita akan belajar mengkontrol hak akses user dalam SQL. […]

    BalasHapus

Posting Komentar