Bagikan melalui


GRANT (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 Pratinjau Microsoft Fabric

Memberikan izin pada yang dapat diamankan kepada prinsipal. Konsep umumnya adalah .GRANT <some permission> ON <some object> TO <some user, login, or group> Untuk diskusi umum tentang izin, lihat Izin (Mesin Database).

Konvensi sintaks transact-SQL

Syntax

Sintaks untuk database SQL Server, Azure SQL Database, dan Fabric SQL.

-- Simplified syntax for GRANT
GRANT { ALL [ PRIVILEGES ] }
      | permission [ ( column [ , ...n ] ) ] [ , ...n ]
      [ ON [ class :: ] securable ] TO principal [ , ...n ]
      [ WITH GRANT OPTION ] [ AS principal ]

Sintaks untuk Azure Synapse Analytics, Gudang Data Paralel, dan gudang Microsoft Fabric.

GRANT
    <permission> [ , ...n ]
    [ ON [ <class_type> :: ] securable ]
    TO principal [ , ...n ]
    [ WITH GRANT OPTION ]
[;]

<permission> ::=
{ see the tables below }

<class_type> ::=
{
      LOGIN
    | DATABASE
    | OBJECT
    | ROLE
    | SCHEMA
    | USER
}

Arguments

ALL

Opsi ini tidak digunakan lagi dan dipertahankan hanya untuk kompatibilitas mundur. Ini tidak memberikan semua izin yang mungkin. Pemberian ALL setara dengan memberikan izin berikut.

Securable Permissions
Database BACKUP DATABASE, , BACKUP LOGCREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, , CREATE TABLE, danCREATE VIEW
Scalar function EXECUTE dan REFERENCES
Table-valued function DELETE, , INSERTREFERENCES, SELECT, danUPDATE
Stored procedure EXECUTE
Table DELETE, , INSERTREFERENCES, SELECT, danUPDATE
View DELETE, , INSERTREFERENCES, SELECT, danUPDATE

PRIVILEGES

Disertakan untuk kepatuhan ISO. Tidak mengubah perilaku ALL.

permission

Nama izin. Pemetaan izin yang valid ke yang dapat diamankan dijelaskan di bagian berikut.

column

Menentukan nama kolom dalam tabel tempat izin diberikan. Tanda kurung ( dan ) diperlukan.

class

Menentukan kelas yang dapat diamankan tempat izin diberikan. Kualifikasi :: cakupan diperlukan.

securable

Menentukan yang dapat diamankan di mana izin diberikan.

TO principal

Nama seorang kepala sekolah. Prinsipal tempat izin pada yang dapat diamankan dapat diberikan bervariasi, tergantung pada yang dapat diamankan. Lihat bagian berikut untuk kombinasi yang valid.

GRANT OPTION

Menunjukkan bahwa penerima hibah juga akan diberikan kemampuan untuk memberikan izin yang ditentukan kepada prinsipal lain.

AS principal

AS <principal> Gunakan klausul untuk menunjukkan bahwa prinsipal yang dicatat sebagai pemberi izin harus menjadi prinsipal selain orang yang menjalankan pernyataan. Misalnya, anggap bahwa pengguna Mary memiliki principal_id dari 12, dan pengguna Raul adalah utama 15. Maria menjalankan GRANT SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; Sekarang sys.database_permissions tabel menunjukkan bahwa grantor_principal_id itu 15 (Raul) meskipun pernyataan itu benar-benar dijalankan oleh pengguna 12 (Mary).

AS Menggunakan klausa biasanya tidak disarankan kecuali Anda perlu secara eksplisit menentukan rantai izin. Untuk informasi selengkapnya, lihat Ringkasan Algoritma Pemeriksaan Izin.

Penggunaan AS dalam pernyataan ini tidak menyiratkan kemampuan untuk meniru pengguna lain.

Remarks

Sintaks GRANT lengkap pernyataan itu kompleks. Diagram sintaks sebelumnya disederhanakan untuk menarik perhatian pada strukturnya. Sintaks lengkap untuk memberikan izin pada jaminan tertentu dijelaskan dalam artikel yang tercantum nanti dalam artikel ini.

Pernyataan REVOKE dapat digunakan untuk menghapus izin yang diberikan, dan DENY pernyataan dapat digunakan untuk mencegah prinsipal mendapatkan izin tertentu melalui GRANT.

Memberikan izin akan menghapus DENY atau REVOKE izin tersebut pada securable yang ditentukan. Jika izin yang sama ditolak pada cakupan yang lebih tinggi yang berisi yang dapat diamankan, yang DENY diutamakan. Tetapi mencabut izin yang diberikan pada cakupan yang lebih tinggi tidak diutamakan.

Izin tingkat database diberikan dalam cakupan database yang ditentukan. Jika pengguna memerlukan izin ke objek di database lain, buat akun pengguna di database lain, atau berikan akses akun pengguna ke database lain, serta database saat ini.

Caution

Tingkat DENY tabel tidak lebih diutamakan daripada tingkat GRANTkolom . Ketidakkonsistensian dalam hierarki izin ini telah dipertahankan demi kompatibilitas mundur. Ini akan dihapus dalam rilis mendatang.

Prosedur sp_helprotect tersimpan sistem melaporkan izin pada tingkat database yang dapat diamankan.

Di Microsoft Fabric, CREATE USER saat ini tidak dapat dijalankan secara eksplisit. Saat GRANT atau DENY dijalankan, pengguna dibuat secara otomatis.

DENGAN OPSI GRANT

GRANT ... WITH GRANT OPTION menentukan bahwa prinsip keamanan yang menerima izin diberikan kemampuan untuk memberikan izin yang ditentukan ke akun keamanan lainnya. Ketika prinsipal yang menerima izin adalah peran atau grup Windows, AS klausa harus digunakan ketika izin objek perlu diberikan lebih lanjut kepada pengguna yang bukan anggota grup atau peran. Karena hanya pengguna, bukan grup atau peran, yang GRANT dapat menjalankan pernyataan, anggota grup atau peran tertentu harus menggunakan AS klausul untuk secara eksplisit memanggil peran atau keanggotaan grup saat memberikan izin. Contoh berikut menunjukkan bagaimana WITH GRANT OPTION digunakan ketika diberikan ke peran atau grup Windows.

-- Execute the following as a database owner
GRANT EXECUTE ON TestProc TO TesterRole WITH GRANT OPTION;
EXEC sp_addrolemember TesterRole, User1;

-- Execute the following as User1
-- The following fails because User1 does not have the permission as the User1
GRANT EXECUTE ON TestProc TO User2;

-- The following succeeds because User1 invokes the TesterRole membership
GRANT EXECUTE ON TestProc TO User2 AS TesterRole;

Bagan izin SQL Server

Untuk bagan berukuran poster dari semua izin Mesin Database dalam format PDF, lihat https://aka.ms/sql-permissions-poster.

Permissions

Pemberi hibah (atau prinsipal yang ditentukan dengan AS opsi ) harus memiliki izin itu sendiri dengan GRANT OPTION, atau izin yang lebih tinggi yang menyiratkan izin yang diberikan. Jika menggunakan opsi , AS persyaratan tambahan berlaku. Lihat artikel khusus yang dapat diamankan untuk detailnya.

Pemilik objek dapat memberikan izin pada objek yang mereka miliki. Prinsipal dengan CONTROL izin pada yang dapat diamankan dapat memberikan izin pada yang dapat diamankan.

CONTROL SERVER Pemberi izin, seperti anggota peran server tetap sysadmin, dapat memberikan izin apa pun pada setiap yang dapat diamankan di server. CONTROL Pemberi izin pada database, seperti anggota peran database tetap db_owner, dapat memberikan izin apa pun pada setiap yang dapat diamankan dalam database. CONTROL Pemberi izin pada skema dapat memberikan izin apa pun pada objek apa pun dalam skema.

Examples

Tabel berikut mencantumkan keamanan dan artikel yang menjelaskan sintaksis khusus yang dapat diamankan.

Securable GRANT sintaks
Application Role IZIN Utama Grant Database (Transact-SQL)
Assembly IZIN Perakitan GRANT (Transact-SQL)
Asymmetric Key IZIN Kunci Asimetris GRANT (Transact-SQL)
Availability Group IZIN GRUP Ketersediaan GRANT (Transact-SQL)
Certificate Izin Sertifikat GRANT (Transact-SQL)
Contract Izin Broker Layanan GRANT (Transact-SQL)
Database IZIN GRANT Database (Transact-SQL)
Kredensial Cakupan Database Grant Database Scoped Credential (Transact-SQL)
Endpoint IZIN TITIK Akhir GRANT (Transact-SQL)
Full-Text Catalog IZIN TEKS Lengkap (Transact-SQL)
Full-Text Stoplist IZIN TEKS Lengkap (Transact-SQL)
Function IZIN Objek GRANT (Transact-SQL)
Login IZIN Utama Server GRANT (Transact-SQL)
Message Type Izin Broker Layanan GRANT (Transact-SQL)
Object IZIN Objek GRANT (Transact-SQL)
Queue IZIN Objek GRANT (Transact-SQL)
Pengikatan Layanan Jarak Jauh Izin Broker Layanan GRANT (Transact-SQL)
Role IZIN Utama Grant Database (Transact-SQL)
Route Izin Broker Layanan GRANT (Transact-SQL)
Schema IZIN Skema GRANT (Transact-SQL)
Daftar Properti Pencarian IZIN Daftar Properti Pencarian GRANT (Transact-SQL)
Server IZIN SERVER GRANT (Transact-SQL)
Service Izin Broker Layanan GRANT (Transact-SQL)
Stored Procedure IZIN Objek GRANT (Transact-SQL)
Symmetric Key IZIN Kunci Konten GRANT (Transact-SQL)
Synonym IZIN Objek GRANT (Transact-SQL)
System Objects IZIN Objek Sistem GRANT (Transact-SQL)
Table IZIN Objek GRANT (Transact-SQL)
Type Izin Jenis GRANT (Transact-SQL)
User IZIN Utama Grant Database (Transact-SQL)
View IZIN Objek GRANT (Transact-SQL)
Koleksi Skema XML IZIN Koleksi Skema XML GRANT (Transact-SQL)