Aracılığıyla paylaş


GRANT (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

Bir sorumluya güvenli hale getirilebilir izinler verir. Genel kavram GRANT <some permission> ON <some object> TO <some user, login, or group>. İzinlerin genel bir tartışması için bkz. İzinler (Veritabanı Altyapısı).

Transact-SQL söz dizimi kuralları

Syntax

SQL Server, Azure SQL Veritabanı ve Doku SQL veritabanı için söz dizimi.

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

Azure Synapse Analytics, Paralel Veri Ambarı ve Microsoft Fabric ambarı için söz dizimi.

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

Bu seçenek kullanım dışıdır ve yalnızca geriye dönük uyumluluk için korunur. Tüm olası izinleri vermez. ALL vermek, aşağıdaki izinleri vermekle eşdeğerdir.

Securable Permissions
Database BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLEve CREATE VIEW
Skaler fonksiyon EXECUTE ve REFERENCES
Tablo değerli fonksiyon DELETE, INSERT, REFERENCES, SELECTve UPDATE
Saklı prosedür EXECUTE
Table DELETE, INSERT, REFERENCES, SELECTve UPDATE
View DELETE, INSERT, REFERENCES, SELECTve UPDATE

PRIVILEGES

ISO uyumluluğuna dahildir. ALLdavranışını değiştirmez.

permission

İzin adı. İzinlerin güvenli hale getirilebilir izinlere yönelik geçerli eşlemeleri aşağıdaki bölümlerde açıklanmıştır.

column

İzinlerin verildiği tablodaki bir sütunun adını belirtir. Parantezler ( ve ) gereklidir.

class

üzerinde izin verilen securable sınıfını belirtir. Kapsam niteleyicisi :: gereklidir.

securable

İzin verilen güvenli hale getirilebilir öğesini belirtir.

TO müdür

Sorumlunun adı. Güvenli hale getirilebilir bir izin verilebilen sorumlular, güvenliği sağlanabilir duruma bağlı olarak değişir. Geçerli birleşimler için aşağıdaki bölümlere bakın.

HIBE SEÇENEĞI

Verilene, belirtilen izni diğer sorumlulara verme yetkisinin de verileceğini gösterir.

Müdür olarak

AS <principal> yan tümcesini kullanarak, iznin vereni olarak kaydedilen sorumlunun deyimini yürüten kişiden başka bir sorumlu olması gerektiğini belirtin. Örneğin, kullanıcı Maryprincipal_id12olduğunu ve kullanıcı Raul15sorumlu olduğunu varsayın. Mary GRANT SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; yürütür Şimdi sys.database_permissions tablosu, deyim kullanıcı grantor_principal_id (15) tarafından yürütülse bile Raul12 (Mary) olduğunu gösterir.

İzin zincirini açıkça tanımlamanız gerekmediği sürece AS yan tümcesinin kullanılması genellikle önerilmez. Daha fazla bilgi için bkz. İzin Denetimi Algoritması özeti.

Bu deyimde AS kullanılması, başka bir kullanıcının kimliğine bürünme yeteneği anlamına gelmez.

Remarks

GRANT deyiminin tam söz dizimi karmaşıktır. Önceki söz dizimi diyagramı, dikkati yapısına çekmek için basitleştirilmiştir. Belirli güvenli hale getirilebilir öğeler üzerinde izin vermek için tam söz dizimi, bu makalenin devamında listelenen makalelerde açıklanmıştır.

REVOKE deyimi verilen izinleri kaldırmak için kullanılabilir ve DENY deyimi bir sorumlunun GRANTaracılığıyla belirli bir izin almasını önlemek için kullanılabilir.

İzin verilmesi, belirtilen güvenli hale getirilebilir iznin DENY veya REVOKE kaldırır. Aynı izin güvenliği sağlanabilir öğesini içeren daha yüksek bir kapsamda reddedilirse, DENY öncelikli olur. Ancak daha yüksek bir kapsamda verilen izni iptal etme öncelikli değildir.

Veritabanı düzeyinde izinler, belirtilen veritabanı kapsamında verilir. Kullanıcının başka bir veritabanındaki nesneler için izinlere ihtiyacı varsa, kullanıcı hesabını diğer veritabanında oluşturun veya kullanıcı hesabına diğer veritabanına ve geçerli veritabanına erişim verin.

Caution

Tablo düzeyinde DENY sütun düzeyi GRANTöncelikli değildir. İzinler hiyerarşisindeki bu tutarsızlık geriye dönük uyumluluk açısından korunmuştur. Gelecek bir sürümde kaldırılacaktır.

sp_helprotect sistem saklı yordamı, veritabanı düzeyinde güvenli hale getirilebilir izinler bildirir.

Microsoft Fabric'te CREATE USER şu anda açıkça yürütülemez. GRANT veya DENY yürütürken kullanıcı otomatik olarak oluşturulur.

GRANT SEÇENEĞI ILE

GRANT ... WITH GRANT OPTION, izni alan güvenlik sorumlusuna belirtilen izni diğer güvenlik hesaplarına verme yetkisi verildiğini belirtir. İzin alan sorumlu bir rol veya Windows grubu olduğunda, nesne izninin grubun veya rolün üyesi olmayan kullanıcılara daha fazla verilmesi gerektiğinde AS yan tümcesi kullanılmalıdır. Bir grup veya rol yerine yalnızca bir kullanıcı GRANT deyimi yürütebildiğinden, grup veya rolün belirli bir üyesi, izin verildiğinde rolü veya grup üyeliğini açıkça çağırmak için AS yan tümcesini kullanmalıdır. Aşağıdaki örnekte, WITH GRANT OPTION bir role veya Windows grubuna verildiğinde nasıl kullanıldığı gösterilmektedir.

-- 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;

SQL Server izinlerinin grafiği

PDF biçimindeki tüm Veritabanı Altyapısı izinlerinin poster boyutlu grafiği için bkz. https://aka.ms/sql-permissions-poster.

Permissions

Verenin (veya AS seçeneğiyle belirtilen sorumlunun) GRANT OPTIONizninin kendisine veya verilen izni ima eden daha yüksek bir izne sahip olması gerekir. AS seçeneğini kullanıyorsanız ek gereksinimler geçerlidir. Ayrıntılar için güvenli hale getirilebilir makaleye bakın.

Nesne sahipleri sahip oldukları nesneler üzerinde izin verebilir. Bir güvenli hale getirilebilir üzerinde CONTROL izni olan sorumlular bu güvenli hale getirilebilir üzerinde izin verebilir.

CONTROL SERVER sabit sunucu rolünün üyeleri gibi izni verenler, sunucudaki güvenliği sağlanabilir herhangi bir rol üzerinde herhangi bir izin verebilir. CONTROL sabit veritabanı rolünün üyeleri gibi bir veritabanında izni verilmesi, veritabanındaki güvenli hale getirilebilir herhangi bir izin verebilir. Şema üzerinde CONTROL izni verenler, şema içindeki herhangi bir nesne üzerinde herhangi bir izin verebilir.

Examples

Aşağıdaki tabloda güvenli hale getirilebilir öğeler ve güvenli hale getirilebilir söz dizimini açıklayan makaleler listelanmaktadır.

Securable GRANT söz dizimi
Uygulama Rolü GRANT Veritabanı Asıl İzinleri (Transact-SQL)
Assembly GRANT Derleme İzinleri (Transact-SQL)
Asimetrik Anahtar GRANT Asimetrik Anahtar İzinleri (Transact-SQL)
Kullanılabilirlik Grubu GRANT Kullanılabilirlik Grubu İzinleri (Transact-SQL)
Certificate GRANT Sertifika İzinleri (Transact-SQL)
Contract GRANT Hizmet Aracısı İzinleri (Transact-SQL)
Database GRANT Veritabanı İzinleri (Transact-SQL)
Veritabanı Kapsamlı Kimlik Bilgileri GRANT Veritabanı Kapsamlı Kimlik Bilgileri (Transact-SQL)
Endpoint GRANT Uç Nokta İzinleri (Transact-SQL)
Full-Text Kataloğu GRANT Full-Text İzinleri (Transact-SQL)
Full-Text Stop Listesi GRANT Full-Text İzinleri (Transact-SQL)
Function GRANT Nesne İzinleri (Transact-SQL)
Login GRANT Sunucu Asıl İzinleri (Transact-SQL)
İleti Türü GRANT Hizmet Aracısı İzinleri (Transact-SQL)
Object GRANT Nesne İzinleri (Transact-SQL)
Queue GRANT Nesne İzinleri (Transact-SQL)
Uzak Hizmet Bağlama GRANT Hizmet Aracısı İzinleri (Transact-SQL)
Role GRANT Veritabanı Asıl İzinleri (Transact-SQL)
Route GRANT Hizmet Aracısı İzinleri (Transact-SQL)
Schema GRANT Şema İzinleri (Transact-SQL)
Özellik Listesi Ara GRANT Arama Özellik Listesi İzinleri (Transact-SQL)
Server GRANT Sunucu İzinleri (Transact-SQL)
Service GRANT Hizmet Aracısı İzinleri (Transact-SQL)
Depolanmış Prosedür GRANT Nesne İzinleri (Transact-SQL)
Simetrik Anahtar GRANT Simetrik Anahtar İzinleri (Transact-SQL)
Synonym GRANT Nesne İzinleri (Transact-SQL)
Sistem Nesneleri GRANT Sistem Nesne İzinleri (Transact-SQL)
Table GRANT Nesne İzinleri (Transact-SQL)
Type GRANT Tür İzinleri (Transact-SQL)
User GRANT Veritabanı Asıl İzinleri (Transact-SQL)
View GRANT Nesne İzinleri (Transact-SQL)
XML Şema Koleksiyonu GRANT XML Şema Koleksiyonu İzinleri (Transact-SQL)