Cara membuat Hak Akses (Privileges) pada user SQL Server (Grant dan Revoke)

Pada tutorial kali ini kita akan belajar bagaimana cara membuat atau memberi grant atau revoke hak akses (Privileges) pada user di SQL Server menggunakan syntax Transact SQL (T-SQL). Anda dapat memberi GRANT dan REVOKE hak akses pada berbagai objek database di SQL Server. Kali ini kita akan melihat bagaimana memberi dan menghapus hak akses pada tabel di SQL Server. Memberikan permissions dan menghapus permissions tidak terlalu sulit dilakukan di dalam SQL Server, hanya butuh beberapa waktu untuk menentukan permissions apa yang harus diterapkan.

Sebelumnya anda harus membuat user dahulu pada SQL Server, setelah itu baru kita bisa memberi Hak Akses. Berikutnya pastikan anda sudah membuat atau menjalankan script dibawah ini.

USE [nama_database]
GO
CREATE USER [nama_user] FOR LOGIN [nama_user]

Grant Hak Akses (Privileges) pada  tabel

Anda dapat memberi (Grant) berbagai hak akses ke tabel pada user. Hak akses ini bisa berupa kombinasi SELECT, INSERT, UPDATE, DELETE, REFERENCES, ALTER, atau ALL.

Sintaks

Sintaks untuk memberikan (Grant) hak akses (Privileges) pada tabel di SQL Server adalah:

GRANT jenis_privileges ON nama_tabel TO nama_user;

Berikut adalah keterangan dari sintaks diatas:
  1. jenis_privileges adalah jenis hak akses yang dapat diberikan atau dihapuskan 
  2. nama_tabel adalah nama object yang dalam kasus ini adalah nama tabel yang akan diberikan atau dihapuskan hak aksesnya
  3. nama_user adalah nama user yang akan diberikan atau dihapuskan hak aksesnya
Berikut adalah jenis privileges yang bisa digunakan:

PrivilegeKeterangan
SELECTKemampuan untuk menjalankan pernyataan SELECT pada tabel.
INSERTKemampuan untuk menjalankan pernyataan INSERT pada tabel.
UPDATEKemampuan untuk menjalankan pernyataan UPDATE pada tabel.
DELETEKemampuan untuk menjalankan pernyataan DELETE pada tabel.
REFERENCESKemampuan untuk membuat sebuah constraint yang mengacu pada tabel.
ALTERKemampuan untuk menjalankan pernyataan ALTER TABLE untuk merubah definisi tabel.
ALLSEMUA tidak memberikan semua izin untuk tabel. Sebaliknya, ia memberikan izin ANSI-92 yang merupakan SELECT, INSERT, UPDATE, DELETE, dan REFERENCES.
Contoh
Misalkan kita mempunyai sebuah database dengan nama sistem_akademik, sebelumnya kita telah membuat sebuah user SQL Server dengan nama akademik_mahasiswa. Pada database sistem_akademik terdapat sebuah tabel yang bernama tabel mahasiswa. Sekarang kita akan coba membuat atau memberikan hak akses select data pada tabel mahasiswa kepada user akademik_mahasiswa. Berikut adalah skripnya:

GRANT SELECT ON sistem_akademik.dbo.mahasiswa TO akademik_mahasiswa;

Jika anda ingin memberikan dua atau lebih hak akses pada user SQL Server tersebut anda dapat menambahkan tanda koma pada hak akses kedua dan setelahnya, berikut adalah contohnya.

GRANT SELECT,INSERT,UPDATE ON sistem_akademik.dbo.mahasiswa TO akademik_mahasiswa;

Jika anda ingin membuat atau memberikan jenis hak akses select,insert,update,delete dan references sekaligus anda bisa menggunakan jenis hak akses ALL, berikut adalah contohnya.

GRANT ALL ON sistem_akademik.dbo.mahasiswa TO akademik_mahasiswa;

Revoke hak akses (Privileges) pada tabel

Setelah anda membuat atau memberikan hak akses pada sebuah user SQL Server, anda mungkin perlu mencabut atau menghapus beberapa atau semua hak akses tersebut. Untuk melakukan hal tersebut, anda dapat menjalankan perintah REVOKE. Anda dapat mencabut atau menghapus kombinasi hak akses SELECT, INSERT, UPDATE, DELETE, REFERENCES, ALTER, atau ALL.

Sintaks
Sintaks untuk mencabut hak akses pada tabel di SQL Server adalah:

REVOKE jenis_privileges ON nama_tabel FROM nama_user;

Contoh
Misalkan pada database sistem_akademik yang telah kita buat sebelumnya, kita akan mencabut hak akses INSERT untuk tabel mahasiswa pada user akademik_mahasiswa, berikut adalah sintaksnya:

REVOKE INSERT ON sistem_akademik.dbo.mahasiswa FROM akademik_mahasiswa;

Artikel Terbaru