Data Control Language (DCL)

GRANT, REVOKE, dan DENY Database Permissions

Data Control Language (DCL) adalah bagian dari Structured Query Language (SQL) dan memungkinkan administrator basis data untuk mengkonfigurasi akses keamanan ke database relasional. Ini melengkapi Data Definition Language (DDL), yang digunakan untuk menambah dan menghapus objek database, dan Data Manipulation Language (DML) yang digunakan untuk mengambil, menyisipkan, dan memodifikasi isi dari database.

DCL adalah yang paling sederhana dari subset SQL , karena hanya terdiri dari tiga perintah: GRANT, REVOKE, dan DENY. Gabungan, ketiga perintah ini memberi administrator fleksibilitas untuk mengatur dan menghapus izin basis data dengan cara yang sangat terperinci.

Menambahkan Izin Dengan Perintah GRANT

Perintah GRANT digunakan oleh administrator untuk menambahkan izin baru ke pengguna basis data . Ini memiliki sintaks yang sangat sederhana, didefinisikan sebagai berikut:

GRANT [privilege] ON [objek] KE [pengguna] [DENGAN GRANT OPTION]

Berikut ini rundown pada masing-masing parameter yang dapat Anda berikan dengan perintah ini:

Sebagai contoh, asumsikan Anda ingin memberi pengguna Joe kemampuan untuk mengambil informasi dari tabel karyawan dalam database yang disebut HR. Anda mungkin menggunakan perintah SQL berikut:

PILIH GRAN pada HR.karyawan ke Joe

Joe sekarang akan memiliki kemampuan untuk mengambil informasi dari tabel karyawan. Dia tidak akan, bagaimanapun, dapat memberikan izin kepada pengguna lain untuk mengambil informasi dari tabel tersebut karena Anda tidak menyertakan klausa DENGAN HIBURAN GRANT dalam pernyataan GRANT.

Mencabut Akses Database

Perintah REVOKE digunakan untuk menghapus akses basis data dari pengguna yang sebelumnya diberikan akses tersebut. Sintaks untuk perintah ini didefinisikan sebagai berikut:

REVOKE [GRANT OPTION FOR] [izin] ON [objek] DARI [pengguna] [CASCADE]

Berikut ini rundown pada parameter untuk perintah REVOKE:

Misalnya, perintah berikut mencabut izin yang diberikan kepada Joe pada contoh sebelumnya:

REVOKE SELECT ON HR.employees FROM Joe

Secara eksplisit Menyangkal Akses Database

Perintah DENY digunakan untuk secara eksplisit mencegah pengguna menerima izin tertentu. Ini berguna ketika pengguna adalah anggota peran atau grup yang diberikan izin, dan Anda ingin mencegah pengguna individu itu mewarisi izin dengan membuat pengecualian. Sintaks untuk perintah ini adalah sebagai berikut:

DENY [izin] ON [objek] KE [pengguna]

Parameter untuk perintah DENY identik dengan yang digunakan untuk perintah GRANT.

Misalnya, jika Anda ingin memastikan bahwa Matthew tidak akan pernah menerima kemampuan untuk menghapus informasi dari tabel karyawan, berikan perintah berikut:

DENY DELETE ON HR.employees TO Matthew