Şeması izinleri (Transact-SQL)
Bir şema izinleri verir.
Sözdizimi
GRANT permission [ ,...n ] ON SCHEMA :: schema_name
TO database_principal [ ,...n ]
[ WITH GRANT OPTION ]
[ AS granting_principal ]
Bağımsız değişkenler
permission
Verilebilir izni bir şema belirtir.İzinler listesi için bu konunun ilerisinde açıklamalar bölümüne bakın...AÇIK ŞEMASI : şema_name
İzin verilen şema belirtir.niteleyici kapsam**:** gereklidir.database_principal
İzni verilmiş asıl adı belirtir.Aşağıdakilerden biri:Veritabanı kullanıcı
veritabanı rolü
uygulama rolü
Windows oturumu açma eşlenen veritabanı kullanıcı
bir Windows grubu eşlenen veritabanı kullanıcı
bir sertifikaeşlenen veritabanı kullanıcı
bir asimetrik anahtareşlenen veritabanı kullanıcı
veritabanı kullanıcısı için bir sunucu asıl adı eşlenen değil.
GRANT SEÇENEĞİ
Patron da diğer ilkeleri için belirtilmiş izni vermek olanağı verilir gösterir.ASgranting_principal
Bu sorguyu yürüttükten sorumlusunun izni vermek için kendi sağ türetir içinden asıl adı belirtir.Aşağıdakilerden biri:Veritabanı kullanıcı
veritabanı rolü
uygulama rolü
Windows oturumu açma eşlenen veritabanı kullanıcı
bir Windows grubu eşlenen veritabanı kullanıcı
bir sertifikaeşlenen veritabanı kullanıcı
bir asimetrik anahtareşlenen veritabanı kullanıcı
veritabanı kullanıcısı için bir sunucu asıl adı eşlenen değil.
Açıklamalar
Önemli |
---|
Bazı durumlarda alter ve başvuru izinleri birleşimi görüntülemek üzere grantee izin verebilir veri veya yürütmek işlevleri yetkisiz.Örneğin: tablo üzerinde alter iznine ve işlev başvuru izni olan bir kullanıcı, hesaplanmış bir sütun üzerinde bir işlev oluşturun ve bu yürütülebilir.Bu durumda, kullanıcı de hesaplanmış bir sütunüzerinde select izni olmalıdır. |
Bir şema izinleri sıradüzeni içindeki üst olan veritabanı tarafından bulunan bir veritabanı -düzey güvenliği sağlanabilir ' dir.Bir şema üzerinde verilebilecek en belirli ve sınırlı izinleri, bunların patentlerini tarafından dahil daha genel izinleri ile birlikte, aşağıda listelenmiştir.
Şema izni |
Şema izni tarafından örtülü |
Veritabanı izni tarafından örtülü |
---|---|---|
DENETİM |
DENETİM |
DENETİM |
SAHİPLİĞİ |
DENETİM |
DENETİM |
ALTER |
DENETİM |
HERHANGİ BİR ŞEMA ALTER |
YÜRÜTME |
DENETİM |
YÜRÜTME |
EKLE |
DENETİM |
EKLE |
SİL |
DENETİM |
SİL |
GÜNCELLEŞTİRME |
DENETİM |
GÜNCELLEŞTİRME |
SEÇİN |
DENETİM |
SEÇİN |
BAŞVURULAR |
DENETİM |
BAŞVURULAR |
GÖRÜNÜM DEĞİŞİKLİK İZLEME |
DENETİM |
DENETİM |
VIEW DEFINITION |
DENETİM |
VIEW DEFINITION |
Dikkat |
---|
Bir şema üzerinde alter iznine sahip bir kullanıcı için kullanıcının açıkça erişim engellendi güvenli hale Getirilebilenler dahil olmak üzere, diğer şemalardaki güvenli hale Getirilebilenler erişmek için zincirleme sahipliği kullanabilirsiniz.Atlanan izinleri zincirleme sahipliği başvurmak nesnelerin sahibi patron tarafından sahip olunan, başvurulan nesneler üzerinde denetler olmasıdır.Bir şema üzerinde alter iznine sahip bir kullanıcı yordamları ve eşanlamlı şema sahibe ait görünümler oluşturabilirsiniz.Bu nesneler şema sahibe ait diğer şemalardaki bilgileri (aracılığıyla sahiplik zincirleme) erişim gerekecek.Mümkün olduğunda, diğer şemalar şema sahibi de sahipse bir şema üzerinde alter iznine vererek kaçınmalısınız. |
Örneğin, bu sorun aşağıdaki senaryolarda oluşabilir.Bu senaryolar, U1 adlandırılan bir kullanıcı S1 şema üzerinde alter iznine sahip olduğunu varsayalım.U1 kullanıcı şema S2 T1 adlandırılan bir tablo nesnesi erişim reddedildi.Şema S1 ve S2 şema aynı sahibi tarafından sahip olunan.
U1 kullanıcının create procedure izni veritabanında ve S1 şema üzerinde execute izni vardır.Bu nedenle, U1 kullanıcı bir saklı yordamoluşturun ve reddedilen nesnesinde T1 saklı yordamerişim.
U1 kullanıcı EŞANLAMLI oluşturma izni veritabanında ve S1 şema üzerinde select iznine sahiptir.Bu nedenle, U1 kullanıcı reddedilen nesnenin T1 S1 Þemada veri türünün eşanlamlısı oluşturmak ve sonra Reddedilen nesne T1 eş kullanarak erişim.
U1 kullanıcı veritabanında create VIEW izni ve S1 şema üzerinde select iznine sahiptir.Bu nedenle, U1 kullanıcı bir görünüm S1 şema verilerini sorgulamak engellenen nesneden T1 oluşturabilir ve sonra T1 reddedilen nesnenin görünümünü kullanarak erişim.
Daha fazla bilgi için bkz: Microsoft kb makale numarasını 914847.
İzinler
Grantor (veya as seçeneği ile belirtilen sorumlusunun) izniyle kendisini grant seçeneği ya da verilen izindir anlamına gelir daha yüksek bir izin olması gerekir.
as seçeneğini kullanarak, bu ek gereksinimler Uygula.
ASgranting_principal |
Ek izin gerekiyor |
---|---|
Veritabanı kullanıcı |
Kullanıcı, üyelik özelliklerini Al izni db_securityadmin veritabanı rolü, üyelik sabit db_owner veritabanı rolüveya Üyelik sabit sysadmin sabit sunucu rolü. |
Windows oturumu açma eşlenen veritabanı kullanıcı |
Kullanıcı, üyelik özelliklerini Al izni db_securityadmin veritabanı rolü, üyelik sabit db_owner veritabanı rolüveya Üyelik sabit sysadmin sabit sunucu rolü. |
Bir Windows grubu eşlenen veritabanı kullanıcı |
Üyelik Windows Grup üyeliği db_securityadmin veritabanı rolü, üyelik sabit db_owner veritabanı rolüveya Üyelik sabit sysadmin sabit sunucu rolü. |
Bir sertifikaeşlenen veritabanı kullanıcı |
Üyelik db_securityadmin veritabanı rolü, üyelik sabit db_owner veritabanı rolüveya Üyelik sabit sysadmin sabit sunucu rolü. |
Bir asimetrik anahtareşlenen veritabanı kullanıcı |
Üyelik db_securityadmin veritabanı rolü, üyelik sabit db_owner veritabanı rolüveya Üyelik sabit sysadmin sabit sunucu rolü. |
Herhangi bir sunucu asıl değil eşlenen veritabanı kullanıcı |
Kullanıcı, üyelik özelliklerini Al izni db_securityadmin veritabanı rolü, üyelik sabit db_owner veritabanı rolüveya Üyelik sabit sysadmin sabit sunucu rolü. |
Veritabanı rolü |
Rol üyeliği üzerinde alter iznine db_securityadmin veritabanı rolü, üyelik sabit db_owner veritabanı rolüveya Üyelik sabit sysadmin sabit sunucu rolü. |
Uygulama rolü |
Rol üyeliği üzerinde alter iznine db_securityadmin veritabanı rolü, üyelik sabit db_owner veritabanı rolüveya Üyelik sabit sysadmin sabit sunucu rolü. |
Nesne sahipleri sahip oldukları nesnelerdeki izinleri verebilirsiniz.Bir güvenliği sağlanabilir üzerinde Denetim iznine sahip ilkeleri, güvenliği sağlanabilirüzerinde izni verebilirsiniz.
Üyeleri gibi control server izni grantees sysadmin sabit sunucu rolü, bir güvenliği sağlanabilir Server üzerinde herhangi bir izni vermek.Üyeleri gibi bir veritabanı üzerinde denetim izni grantees db_owner veritabanı rolü, sabit herhangi güvenliği sağlanabilir veritabanında bulunan herhangi bir izni vermekBir şema üzerinde control izni grantees herhangi bir şema içinde herhangi bir nesne üzerinde izni verebilirsiniz.
Örnekler
A.Konuk için şema HumanResources ekleme yetkisi verme
GRANT INSERT ON SCHEMA :: HumanResources TO guest;
B.Veritabanı kullanıcı WilJo şema kişi üzerinde select izni verme
GRANT SELECT ON SCHEMA :: Person TO WilJo WITH GRANT OPTION;
Ayrıca bkz.