Aracılığıyla paylaş


GRANT (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnalytics Platform Sistemi (PDW)SQL analiz uç noktası microsoft fabricAmbarı'nda Microsoft FabricSQL veritabanında Microsoft Fabric

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ı

Sözdizimi

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
}

Bağımsız değişken

TÜM

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.

Güvenilir İzinler
Veritabanı BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLEve CREATE VIEW
Skaler işlev EXECUTE ve REFERENCES
Tablo değerli işlev DELETE, INSERT, REFERENCES, SELECTve UPDATE
Saklı yordam EXECUTE
Masa DELETE, INSERT, REFERENCES, SELECTve UPDATE
Görünüm DELETE, INSERT, REFERENCES, SELECTve UPDATE

AYRICALIK

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

izin

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

sütun

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

sınıf

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

güvenli hale getirilebilir

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

TO sorumlu

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.

VER SEÇENEĞI

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

AS sorumlusu

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ı 12 (Mary) tarafından yürütülse bile grantor_principal_id15 (Raul) 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.

Açıklamalar

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.

Dikkat

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.

İzinler

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.

sysadmin sabit sunucu rolünün üyeleri gibi CONTROL SERVER izni verenler, sunucudaki güvenliği sağlanabilir herhangi bir rol üzerinde herhangi bir izin verebilir. db_owner sabit veritabanı rolünün üyeleri gibi bir veritabanında CONTROL 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.

Örnekler

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

Güvenilir GRANT söz dizimi
Uygulama Rolü GRANT Veritabanı Asıl İzinleri (Transact-SQL)
Meclis GRANT Derleme İzinleri (Transact-SQL)
Asimetrik Anahtar GRANT Asimetrik Anahtar İzinleri (Transact-SQL)
Kullanılabilirlik Grubu GRANT Kullanılabilirlik Grubu İzinleri (Transact-SQL)
Sertifika GRANT Sertifika İzinleri (Transact-SQL)
Sözleşme GRANT Hizmet Aracısı İzinleri (Transact-SQL)
Veritabanı GRANT Veritabanı İzinleri (Transact-SQL)
Veritabanı Kapsamlı Kimlik Bilgileri GRANT Veritabanı Kapsamlı Kimlik Bilgileri (Transact-SQL)
Bitiş noktası GRANT Uç Nokta İzinleri (Transact-SQL)
Full-Text Kataloğu GRANT Full-Text İzinleri (Transact-SQL)
Full-Text Durdurma Listesi GRANT Full-Text İzinleri (Transact-SQL)
Fonksiyon GRANT Nesne İzinleri (Transact-SQL)
Oturum açma GRANT Sunucu Asıl İzinleri (Transact-SQL)
İleti Türü GRANT Hizmet Aracısı İzinleri (Transact-SQL)
Nesne GRANT Nesne İzinleri (Transact-SQL)
Sıra GRANT Nesne İzinleri (Transact-SQL)
Uzak Hizmet Bağlama GRANT Hizmet Aracısı İzinleri (Transact-SQL)
Rol GRANT Veritabanı Asıl İzinleri (Transact-SQL)
Rota GRANT Hizmet Aracısı İzinleri (Transact-SQL)
Şema GRANT Şema İzinleri (Transact-SQL)
Özellik Listesi Ara GRANT Arama Özellik Listesi İzinleri (Transact-SQL)
Sunucu GRANT Sunucu İzinleri (Transact-SQL)
Hizmet GRANT Hizmet Aracısı İzinleri (Transact-SQL)
Saklı Yordam GRANT Nesne İzinleri (Transact-SQL)
Simetrik Anahtar GRANT Simetrik Anahtar İzinleri (Transact-SQL)
Eşanlamlı GRANT Nesne İzinleri (Transact-SQL)
Sistem Nesneleri GRANT Sistem Nesne İzinleri (Transact-SQL)
Masa GRANT Nesne İzinleri (Transact-SQL)
Tür GRANT Tür İzinleri (Transact-SQL)
Kullanıcı GRANT Veritabanı Asıl İzinleri (Transact-SQL)
Görünüm GRANT Nesne İzinleri (Transact-SQL)
XML Şema Koleksiyonu GRANT XML Şema Koleksiyonu İzinleri (Transact-SQL)