GRANT Izin Database (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistem Platform Analitik (PDW)Titik akhir analitik SQL di Microsoft FabricGudang di Microsoft FabricDatabase SQL di Microsoft Fabric

Memberikan izin pada database di SQL Server.

Konvensi sintaks transact-SQL

Syntax


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

Arguments

izin Menentukan izin yang dapat diberikan pada database. Untuk daftar izin, lihat bagian Keterangan nanti dalam topik ini.

SEMUA Opsi ini tidak memberikan semua izin yang mungkin. Memberikan ALL setara dengan pemberian izin berikut: BACKUP, LOGDATABASE, BACKUP, CREATE DEFAULTCREATE FUNCTIONCREATE PROCEDURECREATE RULEdan .CREATE TABLECREATE VIEW

HAK ISTIMEWA Disertakan untuk kepatuhan ANSI-92. Tidak mengubah perilaku ALL.

DENGAN GRANT OPSI 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_role Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru, SQL Database

Menentukan peran aplikasi.

Database_user_mapped_to_Windows_User Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru

Menentukan pengguna database yang dipetakan ke pengguna Windows.

Database_user_mapped_to_Windows_Group Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru

Menentukan pengguna database yang dipetakan ke grup Windows.

Database_user_mapped_to_certificate Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru

Menentukan pengguna database yang dipetakan ke sertifikat.

Database_user_mapped_to_asymmetric_key Berlaku untuk: SQL Server 2008 (10.0.x) 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.

Remarks

Important

Kombinasi izin ALTER dan REFERENCE dalam beberapa kasus dapat memungkinkan penerima untuk melihat data atau menjalankan fungsi yang tidak sah. Misalnya: Pengguna dengan izin ALTER 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
MENGELOLA DATABASE OPERASI MASSAL
Berlaku untuk: SQL Database.
CONTROL SERVER KONTROL
ALTER CONTROL MENGUBAH SEMUA DATABASE
MENGUBAH SEMUA APPLICATION ROLE ALTER SERVER KONTROL
MENGUBAH SEMUA ASSEMBLY ALTER SERVER KONTROL
MENGUBAH SEMUA ASYMMETRIC KEY ALTER SERVER KONTROL
MENGUBAH SEMUA CERTIFICATE ALTER SERVER KONTROL
MENGUBAH SEMUA COLUMN ENCRYPTION KEY ALTER SERVER KONTROL
UBAH DEFINISI APA PUN COLUMN MASTER KEY ALTER SERVER KONTROL
MENGUBAH SEMUA CONTRACT ALTER SERVER KONTROL
MENGUBAH AUDIT APA PUN DATABASE ALTER MENGUBAH SEMUA SERVER AUDIT
UBAH DDL APA PUN DATABASETRIGGER ALTER SERVER KONTROL
UBAH APA SAJA DATABASEEVENT NOTIFICATION ALTER MENGUBAH SEMUA EVENT NOTIFICATION
UBAH APA SAJA DATABASEEVENT SESSION
Berlaku untuk: SQL Database.
ALTER MENGUBAH SEMUA EVENT SESSION
MENGUBAH SEMUA DATABASE SCOPED CONFIGURATION
Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru, SQL Database.
CONTROL SERVER KONTROL
MENGUBAH RUANG DATA APA PUN ALTER SERVER KONTROL
MENGUBAH SEMUA EXTERNAL DATA SOURCE ALTER SERVER KONTROL
MENGUBAH SEMUA EXTERNAL FILE FORMAT ALTER SERVER KONTROL
MENGUBAH SEMUA EXTERNAL LIBRARY
Berlaku untuk: SQL Server 2017 (14.x).
CONTROL SERVER KONTROL
MENGUBAH SEMUA FULLTEXT CATALOG ALTER SERVER KONTROL
UBAH MASKER APA PUN CONTROL SERVER KONTROL
MENGUBAH SEMUA MESSAGE TYPE ALTER SERVER KONTROL
MENGUBAH SEMUA REMOTE SERVICE BINDING ALTER SERVER KONTROL
MENGUBAH SEMUA ROLE ALTER SERVER KONTROL
MENGUBAH SEMUA ROUTE ALTER SERVER KONTROL
MENGUBAH SEMUA SCHEMA ALTER SERVER KONTROL
MENGUBAH SEMUA SECURITY POLICY
Berlaku untuk: Azure SQL Database.
CONTROL SERVER KONTROL
MENGUBAH SEMUA SENSITIVITY CLASSIFICATION
Berlaku untuk: SQL Server (SQL Server 2019 dan yang lebih baru), Azure SQL Database.
CONTROL SERVER KONTROL
MENGUBAH SEMUA SERVICE ALTER SERVER KONTROL
MENGUBAH SEMUA SYMMETRIC KEY ALTER SERVER KONTROL
MENGUBAH SEMUA USER ALTER SERVER KONTROL
AUTHENTICATE CONTROL MENGAUTENTIKASI SERVER
BACKUP DATABASE CONTROL SERVER KONTROL
BACKUP CATATAN CONTROL SERVER KONTROL
CHECKPOINT CONTROL SERVER KONTROL
CONNECT MENGHUBUNGKAN REPLIKASI SERVER KONTROL
MENGHUBUNGKAN REPLIKASI CONTROL SERVER KONTROL
CONTROL CONTROL SERVER KONTROL
CREATE AGGREGATE ALTER SERVER KONTROL
BUAT APA SAJA EXTERNAL LIBRARY
Berlaku untuk: SQL Server 2017 (14.x).
CONTROL SERVER KONTROL
CREATE ASSEMBLY MENGUBAH SEMUA ASSEMBLY SERVER KONTROL
CREATE ASYMMETRIC KEY MENGUBAH SEMUA ASYMMETRIC KEY SERVER KONTROL
CREATE CERTIFICATE MENGUBAH SEMUA CERTIFICATE SERVER KONTROL
CREATE CONTRACT MENGUBAH SEMUA CONTRACT SERVER KONTROL
CREATE DATABASE CONTROL BUAT APA SAJA DATABASE
CREATE DATABASE DDL EVENT NOTIFICATION UBAH APA SAJA DATABASEEVENT NOTIFICATION BUAT DDL EVENT NOTIFICATION
CREATE DEFAULT ALTER SERVER KONTROL
CREATE FULLTEXT CATALOG MENGUBAH SEMUA FULLTEXT CATALOG SERVER KONTROL
CREATE FUNCTION ALTER SERVER KONTROL
CREATE MESSAGE TYPE MENGUBAH SEMUA MESSAGE TYPE SERVER KONTROL
CREATE PROCEDURE ALTER SERVER KONTROL
CREATE QUEUE ALTER SERVER KONTROL
CREATE REMOTE SERVICE BINDING MENGUBAH SEMUA REMOTE SERVICE BINDING SERVER KONTROL
CREATE ROLE MENGUBAH SEMUA ROLE SERVER KONTROL
CREATE ROUTE MENGUBAH SEMUA ROUTE SERVER KONTROL
CREATE RULE ALTER SERVER KONTROL
CREATE SCHEMA MENGUBAH SEMUA SCHEMA SERVER KONTROL
CREATE SERVICE MENGUBAH SEMUA SERVICE SERVER KONTROL
CREATE SYMMETRIC KEY MENGUBAH SEMUA SYMMETRIC KEY SERVER KONTROL
CREATE SYNONYM ALTER SERVER KONTROL
CREATE TABLE ALTER SERVER KONTROL
CREATE TYPE ALTER SERVER KONTROL
CREATE VIEW ALTER SERVER KONTROL
CREATE XML SCHEMA COLLECTION ALTER SERVER KONTROL
DELETE CONTROL SERVER KONTROL
EXECUTE CONTROL SERVER KONTROL
JALANKAN EKSTERNAL APA PUN ENDPOINT
Berlaku untuk: Azure SQL Database.
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
MATIKAN DATABASE KONEKSI
Berlaku untuk: Azure SQL Database.
CONTROL MENGUBAH KONEKSI APA PUN
REFERENCES CONTROL SERVER KONTROL
SELECT CONTROL SERVER KONTROL
SHOWPLAN CONTROL UBAH JEJAK
BERLANGGANAN PEMBERITAHUAN KUERI CONTROL SERVER KONTROL
AMBIL KEPEMILIKAN CONTROL SERVER KONTROL
UNMASK CONTROL SERVER KONTROL
UPDATE CONTROL SERVER KONTROL
VIEWDEFINISI APA PUN COLUMN ENCRYPTION KEY CONTROL VIEW DEFINISI APA PUN
VIEWDEFINISI APA PUN COLUMN MASTER KEY CONTROL VIEW DEFINISI APA PUN
VIEW DATABASE STATUS KINERJA

Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru.
VIEW DATABASE NEGARA VIEW STATUS KINERJA SERVER
VIEW DATABASE STATUS KEAMANAN

Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru.
VIEW DATABASE NEGARA VIEW STATUS KEAMANAN SERVER
VIEW DATABASE NEGARA CONTROL VIEW STATUS SERVER
VIEW DEFINISI CONTROL VIEW DEFINISI APA PUN
VIEW DEFINISI KINERJA

Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru.
VIEW DEFINISI VIEW DEFINISI PERFORMA APA PUN
VIEW DEFINISI KEAMANAN

Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru.
VIEW DEFINISI VIEW DEFINISI KEAMANAN APA SAJA

Permissions

Pemberi (atau prinsipal yang ditentukan dengan opsi AS) harus memiliki izin itu sendiri dengan GRANT OPTION, atau izin yang lebih tinggi yang menyiratkan izin yang diberikan.

Jika Anda menggunakan opsi AS, persyaratan tambahan berikut berlaku.

SEBAGAI 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 perwakilan 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 dalam 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 SERVER KONTROL, seperti anggota peran server tetap sysadmin, dapat memberikan izin apa pun pada setiap yang dapat diamankan di server.

Examples

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 AdventureWorks2025 database ke peran AuditMonitoraplikasi .

Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru, SQL Database

USE AdventureWorks2022;
GRANT SHOWPLAN TO AuditMonitor;
GO

C. Pemberian CREATE VIEW dengan GRANT OPTION

Contoh berikut memberikan CREATE VIEW izin pada AdventureWorks2025 database kepada pengguna CarmineEs dengan hak untuk diberikan CREATE VIEW kepada prinsipal lain.

USE AdventureWorks2022;
GRANT CREATE VIEW TO CarmineEs WITH GRANT OPTION;
GO

D. Memberikan izin CONTROL kepada pengguna database

Contoh berikut memberikan CONTROL izin pada AdventureWorks2025 database kepada pengguna Sarahdatabase . Pengguna harus ada dalam database dan konteks harus diatur ke database.

USE AdventureWorks2022;
GRANT CONTROL ON DATABASE::AdventureWorks2022 TO Sarah;
GO