Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analiz Platformu Sistemi (PDW)
Microsoft Fabric'teki SQL analiz uç noktası
Microsoft Fabric'teki ambar
Microsoft 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..
AÇIK SCHEMA::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ş.
GRANT SEÇENEK
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 | HERHANGI BIR SCHEMA DEĞIŞTIRME |
| CONTROL | CONTROL | CONTROL |
| CREATE SEQUENCE | ALTER | HERHANGI BIR SCHEMA DEĞIŞTIRME |
| DELETE | CONTROL | DELETE |
| EXECUTE | CONTROL | EXECUTE |
| INSERT | CONTROL | INSERT |
| REFERENCES | CONTROL | REFERENCES |
| SELECT | CONTROL | SELECT |
| SAHIPLENMEK | CONTROL | CONTROL |
| UPDATE | CONTROL | UPDATE |
| VIEW DEĞIŞIKLIK IZLEME | CONTROL | CONTROL |
| VIEW TANIMI | CONTROL | VIEW TANIMI |
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ının veritabanı üzerindeki izni, S1 şeması üzerinde ise EXECUTE iznine sahiptir CREATE PROCEDURE . 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ı üzerindeki izni ve S1 şeması üzerinde SELECT izni vardır CREATE SYNONYM . 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ı üzerindeki izni ve S1 şeması üzerinde SELECT izni vardır CREATE VIEW . 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
Vericinin (veya AS seçeneğiyle belirtilen müdürün) ya OPTION ile izni GRANT kendisine ya da izin verildiğini ima eden daha yüksek bir izne sahip olmalıdır.
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 şema İnsan Kaynakları izni INSERT verilmesi
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)
GRANT (Transact-SQL)
İzinler (Veritabanı Altyapısı)
Sorumluları (Veritabanı Altyapısı)
CREATE CERTIFICATE (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
CREATE APPLICATION ROLE (Transact-SQL)
Şifreleme Hiyerarşisi
sys.fn_builtin_permissions (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)