IZIN DATABASE GRANT (SQL Bertransaksi)
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Memberikan izin pada database di SQL Server.
Sintaks
GRANT <permission> [ ,...n ]
TO <database_principal> [ ,...n ] [ WITH GRANT OPTION ]
[ AS <database_principal> ]
<permission>::=
permission | ALL [ PRIVILEGES ]
<database_principal> ::=
Database_user
| Database_role
| Application_role
| Database_user_mapped_to_Windows_User
| Database_user_mapped_to_Windows_Group
| Database_user_mapped_to_certificate
| Database_user_mapped_to_asymmetric_key
| Database_user_with_no_login
Catatan
Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.
Argumen
Izin Menentukan izin yang bisa diberikan pada database. Untuk daftar izin, lihat bagian Keterangan nanti dalam topik ini.
ALL Opsi ini tidak memberikan semua izin yang mungkin. Memberikan SEMUA setara dengan memberikan izin berikut: BACKUP DATABASE, BACKUP LOG, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE, dan CREATE VIEW.
HAK ISTIMEWA Disertakan untuk kepatuhan ANSI-92. Tidak mengubah perilaku ALL.
WITH GRANT OPTION Menunjukkan bahwa prinsipal juga akan diberikan kemampuan untuk memberikan izin yang ditentukan kepada prinsipal lain.
AS <database_principal> Menentukan prinsipal dari mana prinsipal yang menjalankan kueri ini memperoleh haknya untuk memberikan izin.
Database_user Menentukan pengguna database.
Database_role Menentukan peran database.
Application_roleBerlaku untuk: SQL Server 2008 dan yang lebih baru, SQL Database
Menentukan peran aplikasi.
Database_user_mapped_to_Windows_UserBerlaku untuk: SQL Server 2008 dan yang lebih baru
Menentukan pengguna database yang dipetakan ke pengguna Windows.
Database_user_mapped_to_Windows_GroupBerlaku untuk: SQL Server 2008 dan yang lebih baru
Menentukan pengguna database yang dipetakan ke grup Windows.
Database_user_mapped_to_certificateBerlaku untuk: SQL Server 2008 dan yang lebih baru
Menentukan pengguna database yang dipetakan ke sertifikat.
Database_user_mapped_to_asymmetric_keyBerlaku untuk: SQL Server 2008 dan yang lebih baru
Menentukan pengguna database yang dipetakan ke kunci asimetris.
Database_user_with_no_login Menentukan pengguna database tanpa prinsipal tingkat server yang sesuai.
Keterangan
Penting
Kombinasi izin ALTER dan REFERENCE dalam beberapa kasus dapat memungkinkan penerima untuk melihat data atau menjalankan fungsi yang tidak sah. Misalnya: Pengguna dengan izin UBAH pada tabel dan izin REFERENSI pada fungsi dapat membuat kolom komputasi melalui fungsi dan menjalankannya. Dalam hal ini, pengguna juga harus memiliki izin SELECT pada kolom komputasi.
Database adalah yang dapat diamankan yang dimuat oleh server yang merupakan induknya dalam hierarki izin. Izin paling spesifik dan terbatas yang dapat diberikan pada database tercantum dalam tabel berikut, bersama dengan izin yang lebih umum yang menyertakannya berdasarkan implikasi.
| Izin database | Tersirat oleh izin database | Tersirat oleh izin server |
|---|---|---|
| ADMINISTER DATABASE BULK OPERATIONS Berlaku untuk: SQL Database. |
CONTROL | SERVER KONTROL |
| ALTER | CONTROL | ALTER ANY DATABASE |
| MENGUBAH PERAN APLIKASI APA PUN | ALTER | SERVER KONTROL |
| MENGUBAH ASSEMBLY APA PUN | ALTER | SERVER KONTROL |
| MENGUBAH KUNCI ASIMETRIS APA PUN | ALTER | SERVER KONTROL |
| MENGUBAH SERTIFIKAT APA PUN | ALTER | SERVER KONTROL |
| MENGUBAH KUNCI ENKRIPSI KOLOM APA PUN | ALTER | SERVER KONTROL |
| MENGUBAH DEFINISI KUNCI MASTER KOLOM APA PUN | ALTER | SERVER KONTROL |
| MENGUBAH KONTRAK APA PUN | ALTER | SERVER KONTROL |
| MENGUBAH AUDIT DATABASE APA PUN | ALTER | MENGUBAH AUDIT SERVER APA PUN |
| MENGUBAH PEMICU DDL DATABASE APA PUN | ALTER | SERVER KONTROL |
| MENGUBAH PEMBERITAHUAN PERISTIWA DATABASE APA PUN | ALTER | MENGUBAH PEMBERITAHUAN PERISTIWA APA PUN |
| MENGUBAH SESI PERISTIWA DATABASE APA PUN Berlaku untuk: SQL Database. |
ALTER | MENGUBAH SESI PERISTIWA APA PUN |
| MENGUBAH KONFIGURASI LINGKUP DATABASE APA PUN Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru, SQL Database. |
CONTROL | SERVER KONTROL |
| MENGUBAH RUANG DATA APA PUN | ALTER | SERVER KONTROL |
| ALTER ANY EXTERNAL DATA SOURCE | ALTER | SERVER KONTROL |
| ALTER ANY EXTERNAL FILE FORMAT | ALTER | SERVER KONTROL |
| MENGUBAH PUSTAKA EKSTERNAL APA PUN Berlaku untuk: SQL Server 2017 (14.x). |
CONTROL | SERVER KONTROL |
| MENGUBAH KATALOG TEKS LENGKAP APA PUN | ALTER | SERVER KONTROL |
| MENGUBAH MASKER APA PUN | CONTROL | SERVER KONTROL |
| MENGUBAH JENIS PESAN APA PUN | ALTER | SERVER KONTROL |
| MENGUBAH PENGIKATAN LAYANAN JARAK JAUH APA PUN | ALTER | SERVER KONTROL |
| MENGUBAH PERAN APA PUN | ALTER | SERVER KONTROL |
| MENGUBAH RUTE APA PUN | ALTER | SERVER KONTROL |
| ALTER ANY SCHEMA | ALTER | SERVER KONTROL |
| MENGUBAH KEBIJAKAN KEAMANAN APA PUN Berlaku untuk: Azure SQL Database. |
CONTROL | SERVER KONTROL |
| MENGUBAH KLASIFIKASI SENSITIVITAS APA PUN Berlaku untuk: SQL Server (SQL Server 2019 dan yang lebih baru), Azure SQL Database. |
CONTROL | SERVER KONTROL |
| MENGUBAH LAYANAN APA PUN | ALTER | SERVER KONTROL |
| MENGUBAH KUNCI SIMETRIS APA PUN | ALTER | SERVER KONTROL |
| MENGUBAH PENGGUNA APA PUN | ALTER | SERVER KONTROL |
| MENGOTENTIKASI | CONTROL | MENGAUTENTIKASI SERVER |
| DATABASE CADANGAN | CONTROL | SERVER KONTROL |
| LOG CADANGAN | CONTROL | SERVER KONTROL |
| TITIK PEMERIKSAAN | CONTROL | SERVER KONTROL |
| MENGHUBUNG | SAMBUNGKAN REPLIKASI | SERVER KONTROL |
| SAMBUNGKAN REPLIKASI | CONTROL | SERVER KONTROL |
| CONTROL | CONTROL | SERVER KONTROL |
| CREATE AGGREGATE | ALTER | SERVER KONTROL |
| MEMBUAT PUSTAKA EKSTERNAL APA PUN Berlaku untuk: SQL Server 2017 (14.x). |
CONTROL | SERVER KONTROL |
| BUAT RAKITAN | MENGUBAH ASSEMBLY APA PUN | SERVER KONTROL |
| MEMBUAT KUNCI ASIMETRIS | MENGUBAH KUNCI ASIMETRIS APA PUN | SERVER KONTROL |
| BUAT SERTIFIKAT | MENGUBAH SERTIFIKAT APA PUN | SERVER KONTROL |
| BUAT KONTRAK | MENGUBAH KONTRAK APA PUN | SERVER KONTROL |
| BUAT DATABASE | CONTROL | CREATE ANY DATABASE |
| MEMBUAT PEMBERITAHUAN PERISTIWA DDL DATABASE | MENGUBAH PEMBERITAHUAN PERISTIWA DATABASE APA PUN | MEMBUAT PEMBERITAHUAN PERISTIWA DDL |
| BUAT DEFAULT | ALTER | SERVER KONTROL |
| BUAT KATALOG TEKS LENGKAP | MENGUBAH KATALOG FULLTEXT APA PUN | SERVER KONTROL |
| CREATE FUNCTION | ALTER | SERVER KONTROL |
| MEMBUAT JENIS PESAN | MENGUBAH JENIS PESAN APA PUN | SERVER KONTROL |
| CREATE PROCEDURE | ALTER | SERVER KONTROL |
| BUAT ANTREAN | ALTER | SERVER KONTROL |
| MEMBUAT PENGIKATAN LAYANAN JARAK JAUH | MENGUBAH PENGIKATAN LAYANAN JARAK JAUH APA PUN | SERVER KONTROL |
| CREATE ROLE | MENGUBAH PERAN APA PUN | SERVER KONTROL |
| BUAT RUTE | MENGUBAH RUTE APA PUN | SERVER KONTROL |
| BUAT ATURAN | ALTER | SERVER KONTROL |
| CREATE SCHEMA | ALTER ANY SCHEMA | SERVER KONTROL |
| CREATE SERVICE | MENGUBAH LAYANAN APA PUN | SERVER KONTROL |
| MEMBUAT KUNCI SIMETRIS | MENGUBAH KUNCI KONTEN APA PUN | SERVER KONTROL |
| MEMBUAT SINONIM | ALTER | SERVER KONTROL |
| CREATE TABLE | ALTER | SERVER KONTROL |
| CREATE TYPE | ALTER | SERVER KONTROL |
| BUAT TAMPILAN | ALTER | SERVER KONTROL |
| MEMBUAT KOLEKSI SKEMA XML | ALTER | SERVER KONTROL |
| HAPUS | CONTROL | SERVER KONTROL |
| EXECUTE | CONTROL | SERVER KONTROL |
| JALANKAN SKRIP EKSTERNAL APA PUN Berlaku untuk: SQL Server 2016 (13.x). |
CONTROL | SERVER KONTROL |
| JALANKAN SKRIP EKSTERNAL Berlaku untuk: SQL Server 2019 (15.x). |
JALANKAN SKRIP EKSTERNAL APA PUN | SERVER KONTROL |
| INSERT | CONTROL | SERVER KONTROL |
| KILL DATABASE CONNECTION Berlaku untuk: Azure SQL Database. |
CONTROL | MENGUBAH KONEKSI APA PUN |
| REFERENCES | CONTROL | SERVER KONTROL |
| SELECT | CONTROL | SERVER KONTROL |
| SHOWPLAN | CONTROL | ALTER TRACE |
| BERLANGGANAN PEMBERITAHUAN KUERI | CONTROL | SERVER KONTROL |
| AMBIL KEPEMILIKAN | CONTROL | SERVER KONTROL |
| UNMASK | CONTROL | SERVER KONTROL |
| UPDATE | CONTROL | SERVER KONTROL |
| MENAMPILKAN DEFINISI KUNCI ENKRIPSI KOLOM APA PUN | CONTROL | LIHAT DEFINISI APA PUN |
| MENAMPILKAN DEFINISI KUNCI MASTER KOLOM APA PUN | CONTROL | LIHAT DEFINISI APA PUN |
| TAMPILKAN STATUS DATABASE | CONTROL | LIHAT STATUS SERVER |
| MELIHAT DEFINISI | CONTROL | LIHAT DEFINISI APA PUN |
Izin
Pemberi izin (atau prinsipal yang ditentukan dengan opsi AS) harus memiliki izin itu sendiri dengan GRANT OPTION, atau izin yang lebih tinggi yang menyiratkan izin diberikan.
Jika Anda menggunakan opsi AS, persyaratan tambahan berikut berlaku.
| AS granting_principal | Izin tambahan diperlukan |
|---|---|
| Pengguna database | Izin IMPERSONATE pada pengguna, keanggotaan dalam peran database tetap db_securityadmin, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin. |
| Pengguna database dipetakan ke login Windows | Izin IMPERSONATE pada pengguna, keanggotaan dalam peran database tetap db_securityadmin, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin. |
| Pengguna database dipetakan ke Grup Windows | Keanggotaan dalam grup Windows, keanggotaan dalam peran database tetap db_securityadmin, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin. |
| Pengguna database dipetakan ke sertifikat | Keanggotaan dalam peran database tetap db_securityadmin, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin. |
| Pengguna database dipetakan ke kunci asimetris | Keanggotaan dalam peran database tetap db_securityadmin, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin. |
| Pengguna database tidak dipetakan ke prinsipal server mana pun | Izin IMPERSONATE pada pengguna, keanggotaan dalam peran database tetap db_securityadmin, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin. |
| Peran database | UBAH izin pada peran, keanggotaan dalam peran database tetap db_securityadmin, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin. |
| Peran aplikasi | UBAH izin pada peran, keanggotaan dalam peran database tetap db_securityadmin, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin. |
Pemilik objek dapat memberikan izin pada objek yang mereka miliki. Prinsipal yang memiliki izin CONTROL pada yang dapat diamankan dapat memberikan izin pada yang dapat diamankan.
Pemberi izin CONTROL SERVER, seperti anggota peran server tetap sysadmin, dapat memberikan izin apa pun pada setiap yang dapat diamankan di server.
Contoh
A. Memberikan izin untuk membuat tabel
Contoh berikut memberikan CREATE TABLE izin pada AdventureWorks database kepada pengguna MelanieK.
USE AdventureWorks;
GRANT CREATE TABLE TO MelanieK;
GO
B. Memberikan izin SHOWPLAN ke peran aplikasi
Contoh berikut memberikan SHOWPLAN izin pada AdventureWorks2012 database ke peran AuditMonitoraplikasi .
Berlaku untuk: SQL Server 2008 dan yang lebih baru, SQL Database
USE AdventureWorks2012;
GRANT SHOWPLAN TO AuditMonitor;
GO
C. Memberikan CREATE VIEW dengan GRANT OPTION
Contoh berikut memberikan CREATE VIEW izin pada AdventureWorks2012 database kepada pengguna CarmineEs dengan hak untuk diberikan CREATE VIEW kepada prinsipal lain.
USE AdventureWorks2012;
GRANT CREATE VIEW TO CarmineEs WITH GRANT OPTION;
GO
D. Memberikan izin CONTROL kepada pengguna database
Contoh berikut memberikan CONTROL izin pada AdventureWorks2012 database kepada pengguna Sarahdatabase . Pengguna harus ada dalam database dan konteks harus diatur ke database.
USE AdventureWorks2012;
GRANT CONTROL ON DATABASE::AdventureWorks2012 TO Sarah;
GO
