Aracılığıyla paylaş


GRANT Şema İzinleri (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ı

Şema üzerinde izinler verir.

Transact-SQL söz dizimi kuralları

Syntax

GRANT permission  [ ,...n ] ON SCHEMA :: schema_name  
    TO database_principal [ ,...n ]  
    [ WITH GRANT OPTION ]  
    [ AS granting_principal ]  

Arguments

permission
Şema üzerinde verilebilen bir izin belirtir. İzinlerin listesi için bu konunun devamındaki Açıklamalar bölümüne bakın..

ŞEMADA ::schema_name
İzin verilen şemayı belirtir. Kapsam niteleyicisi :: gereklidir.

database_principal
İzin verilen sorumluyu belirtir. Aşağıdakilerden biri:

  • Veritabanı kullanıcısı
  • Veritabanı rolü
  • uygulama rolü
  • Windows oturum açma bilgilerine eşlenen veritabanı kullanıcısı
  • Bir Windows grubuna eşlenen veritabanı kullanıcısı
  • bir sertifikayla eşlenen veritabanı kullanıcısı
  • asimetrik anahtara eşlenen veritabanı kullanıcısı
  • veritabanı kullanıcısı bir sunucu sorumlusuna eşlenmemiş.

HIBE SEÇENEĞI
Sorumluya, belirtilen izni diğer sorumlulara verme yetkisinin de verileceğini gösterir.

AS granting_principal
Bu sorguyu yürüten sorumlunun izin verme hakkını türetdiği bir sorumlu belirtir. Aşağıdakilerden biri:

  • Veritabanı kullanıcısı
  • Veritabanı rolü
  • uygulama rolü
  • Windows oturum açma bilgilerine eşlenen veritabanı kullanıcısı
  • Bir Windows grubuna eşlenen veritabanı kullanıcısı
  • bir sertifikayla eşlenen veritabanı kullanıcısı
  • asimetrik anahtara eşlenen veritabanı kullanıcısı
  • veritabanı kullanıcısı bir sunucu sorumlusuna eşlenmemiş.

Remarks

Important

Bazı durumlarda ALTER ve REFERENCE izinlerinin birleşimi, izni verenin verileri görüntülemesine veya yetkisiz işlevler yürütmesine izin verebilir. Örneğin: Tabloda ALTER iznine ve işlev üzerinde BAŞVURU iznine sahip bir kullanıcı, bir işlev üzerinde hesaplanan sütun oluşturabilir ve bu sütunun yürütülmesini sağlayabilir. Bu durumda, kullanıcının hesaplanan sütunda SELECT iznine de sahip olması gerekir.

Şema, izin hiyerarşisinde üst öğesi olan veritabanı tarafından kapsanan veritabanı düzeyinde güvenli hale getirilebilir bir şemadır. Bir şemada verilebilen en özel ve sınırlı izinler, bunları ima yoluyla içeren daha genel izinlerle birlikte aşağıda listelenmiştir.

Şema izni Şema izniyle örtülü Veritabanı izniyle örtülü
ALTER CONTROL TÜM ŞEMALARı DEĞIŞTIRME
CONTROL CONTROL CONTROL
DIZIYI OLUŞTUR ALTER TÜM ŞEMALARı DEĞIŞTIRME
DELETE CONTROL DELETE
EXECUTE CONTROL EXECUTE
INSERT CONTROL INSERT
REFERENCES CONTROL REFERENCES
SELECT CONTROL SELECT
SAHIPLENMEK CONTROL CONTROL
UPDATE CONTROL UPDATE
DEĞIŞIKLIK İZLEMEYI GÖRÜNTÜLE CONTROL CONTROL
TANıMı GÖRÜNTÜLE CONTROL TANıMı GÖRÜNTÜLE

Caution

Şemada ALTER izni olan bir kullanıcı, diğer şemalardaki güvenli hale getirilebilir öğelere erişmek için sahiplik zincirini kullanabilir ve bu kullanıcıya açıkça erişim reddedilir. Bunun nedeni, sahiplik zincirlemenin başvuruda bulunan nesnelere başvuran nesnelerin sahibi olan sorumluya sahip olduklarında izin denetimlerini atlamalarıdır. Şema üzerinde ALTER izni olan bir kullanıcı şemanın sahibine ait yordamlar, eş anlamlılar ve görünümler oluşturabilir. Bu nesneler, şema sahibinin sahip olduğu diğer şemalardaki bilgilere (sahiplik zinciri yoluyla) erişebilir. Mümkün olduğunda, şemanın sahibi de başka şemalara sahipse şema üzerinde ALTER izni vermekten kaçınmanız gerekir.

Örneğin, bu sorun aşağıdaki senaryolarda oluşabilir. Bu senaryolarda, U1 olarak adlandırılan bir kullanıcının S1 şeması üzerinde ALTER iznine sahip olduğu varsayılır. U1 kullanıcısının şema S2'de T1 olarak adlandırılan bir tablo nesnesine erişmesi reddedilir. S1 şeması ve S2 şeması aynı sahipe aittir.

U1 kullanıcısı veritabanında CREATE PROCEDURE iznine ve S1 şemasında EXECUTE iznine sahiptir. Bu nedenle, U1 kullanıcısı bir saklı yordam oluşturabilir ve saklı yordamda reddedilen T1 nesnesine erişebilir.

U1 kullanıcısının veritabanında CREATE SYNONYM izni ve S1 şemasında SELECT izni vardır. Bu nedenle, U1 kullanıcısı reddedilen T1 nesnesi için S1 şemasında bir eş anlamlı oluşturabilir ve ardından eş anlamlısını kullanarak reddedilen T1 nesnesine erişebilir.

U1 kullanıcısının veritabanında CREATE VIEW izni ve S1 şemasında SELECT izni vardır. Bu nedenle, U1 kullanıcısı reddedilen nesne T1'den verileri sorgulamak için S1 şemasında bir görünüm oluşturabilir ve ardından görünümü kullanarak reddedilen nesne T1'e erişebilir.

Permissions

Verenin (veya AS seçeneğiyle belirtilen sorumlunun), GRANT OPTION ile iznin kendisine veya verilen izni ima eden daha yüksek bir izne sahip olması gerekir.

AS seçeneğini kullanıyorsanız, bu ek gereksinimler geçerlidir.

AS granting_principal Ek izin gerekiyor
Veritabanı kullanıcısı Kullanıcı üzerinde KIMLIĞE BÜRÜNme izni, db_securityadmin sabit veritabanı rolü üyeliği, db_owner sabit veritabanı rolü üyeliği veya sysadmin sabit sunucu rolü üyeliği.
Windows oturum açma bilgilerine eşlenen veritabanı kullanıcısı Kullanıcı üzerinde KIMLIĞE BÜRÜNme izni, db_securityadmin sabit veritabanı rolü üyeliği, db_owner sabit veritabanı rolü üyeliği veya sysadmin sabit sunucu rolü üyeliği.
Bir Windows grubuna eşlenen veritabanı kullanıcısı Windows grubu üyeliği, db_securityadmin sabit veritabanı rolü üyeliği, db_owner sabit veritabanı rolü üyeliği veya sysadmin sabit sunucu rolü üyeliği.
Sertifikayla eşlenen veritabanı kullanıcısı db_securityadmin sabit veritabanı rolü üyeliği, db_owner sabit veritabanı rolü üyeliği veya sysadmin sabit sunucu rolü üyeliği.
Asimetrik anahtara eşlenen veritabanı kullanıcısı db_securityadmin sabit veritabanı rolü üyeliği, db_owner sabit veritabanı rolü üyeliği veya sysadmin sabit sunucu rolü üyeliği.
Veritabanı kullanıcısı hiçbir sunucu sorumlusuyla eşlenmedi Kullanıcı üzerinde KIMLIĞE BÜRÜNme izni, db_securityadmin sabit veritabanı rolü üyeliği, db_owner sabit veritabanı rolü üyeliği veya sysadmin sabit sunucu rolü üyeliği.
Veritabanı rolü Rol üzerinde ALTER izni, db_securityadmin sabit veritabanı rolü üyeliği, db_owner sabit veritabanı rolü üyeliği veya sysadmin sabit sunucu rolü üyeliği.
Uygulama rolü Rol üzerinde ALTER izni, db_securityadmin sabit veritabanı rolü üyeliği, db_owner sabit veritabanı rolü üyeliği veya sysadmin sabit sunucu rolü üyeliği.

Nesne sahipleri sahip oldukları nesneler üzerinde izin verebilir. Bir güvenli hale getirilebilir üzerinde CONTROL iznine sahip sorumlular, bu güvenli hale getirilebilir öğe ü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 verenler, veritabanındaki güvenli hale getirilebilir herhangi bir öğe üzerinde herhangi bir izin verebilir. Şema üzerinde CONTROL izni verenler, şema içindeki herhangi bir nesne üzerinde herhangi bir izin verebilir.

Examples

A. Konuk için HumanResources şemasında INSERT izni verme

GRANT INSERT ON SCHEMA :: HumanResources TO guest;  

B. Veritabanı kullanıcısı WilJo'ya şema Kişisi üzerinde SELECT izni verme

GRANT SELECT ON SCHEMA :: Person TO WilJo WITH GRANT OPTION;  

Ayrıca Bkz.

DENY Şema İzinleri (Transact-SQL)
REVOKE Şema İzinleri (Transact-SQL)
HİBE (Transact-SQL)
İzinler (Veritabanı Altyapısı)
Sorumluları (Veritabanı Altyapısı)
SERTİFİKA OLUŞTUR (Transact-SQL)
CREATE ASİMETRİK ANAHTAR (Transact-SQL)
UYGULAMA ROLÜ OLUŞTURMA (Transact-SQL)
Şifreleme Hiyerarşisi
sys.fn_builtin_permissions (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)