Nesne IZINLERI (Transact-sql)
Bir tablo, görünüm, tablo değerli işlev, saklı yordam, genişletilmiş saklı yordam, skalar fonksiyon, toplama işlevi, hizmet sıra veya eşanlamlı izinleri verir.
Transact-SQL Sözdizim Kuralları
Sözdizimi
GRANT <permission> [ ,...n ] ON
[ OBJECT :: ][ schema_name ]. object_name [ ( column [ ,...n ] ) ]
TO <database_principal> [ ,...n ]
[ WITH GRANT OPTION ]
[ AS <database_principal> ]
<permission> ::=
ALL [ PRIVILEGES ] | permission [ ( column [ ,...n ] ) ]
<database_principal> ::=
Database_user
| Database_role
| Application_role
| Database_user_mapped_to_Windows_User
| Database_user_mapped_to_Windows_Group
| Database_user_mapped_to_certificate
| Database_user_mapped_to_asymmetric_key
| Database_user_with_no_login
Bağımsız değişkenler
permission
Bir izin verilebilen bir şema içerdiği nesne üzerinde belirtir. İzinler listesi için bu konunun ilerleyen bölümlerinde açıklamalar bölümüne bakın.ALL
TÜM verilmesi, tüm olası izinleri vermez. Bütün verme tüm verilmesi için eşdeğer ANSI-92 izinleri belirtilen nesnesine uygulanabilir. TÜM anlamını aşağıdaki gibi değişir:Skalar fonksiyon izinleri: yürütme, referanslar.
Tablo değerli işlev izinleri: delete, INSERT, başvurular, select, update.
Saklı yordam izinleri: yürütün.
Tablo izinleri: delete, INSERT, başvurular, select, update.
Görüntüleme izinleri: delete, INSERT, başvurular, select, update.
AYRICALIKLAR
İçin ANSI-92 uyumu. TÜM davranışını değiştirmez.column
Bir tablo, görünüm veya tablo değerli işlev üzerinde izin verilen bir sütun adını belirtir. Parantezler () gereklidir. Bir sütun yalnızca seçim, referanslar ve güncelleştirme izni verilebilir. columnizinleri yan tümcesi içinde ya da güvenilir adından sonra belirtilebilir.Dikkat
Bir tablo düzeyi deny sütun düzeyinde vermek öncelikli değildir. Geriye doğru uyumluluk için izinleri hiyerarşisindeki bu tutarsızlık korunmuştur.
ON [ OBJECT :: ] schema_name . object_name
İzin verilen nesneyi belirtir. NESNEYİ ifade isteğe bağlı olmadığını schema_namebelirtilen. NESNEYİ ifade kullanılmış ise kapsam niteleyicisi (:) gereklidir. Eğer schema_namebelirtilmemişse, varsayılan şemayı kullanılır. Eğer schema_nameBelirtilen şema kapsam niteleyicisi (.) gereklidir.İÇİN <database_principal>
İzin verilen asıl adı belirtir.GRANT SEÇENEĞİ İLE BİRLİKTE
Asıl adı da diğer ilkeleri belirtilen izni olanağı verilecektir gösterir.as <database_principal>
Bu sorguyu yürüttükten sorumlusunun izni vermek için kendi sağ türetir içinden asıl adı belirtir.Database_user
Veritabanı kullanıcı belirtir.Database_role
Veritabanı rolü belirtir.Application_role
Uygulama rolü belirtir.Database_user_mapped_to_Windows_User
Bir Windows kullanıcısı eşlenen veritabanı kullanıcı belirtir.Database_user_mapped_to_Windows_Group
Bir Windows grubu eşlenen veritabanı kullanıcı belirtir.Database_user_mapped_to_certificate
Sertifika eşlenen veritabanı kullanıcı belirtir.Database_user_mapped_to_asymmetric_key
Bir asimetrik anahtar eşlenen veritabanı kullanıcı belirtir.Database_user_with_no_login
Veritabanı kullanıcı ile ilgili hiçbir sunucu düzeyinde asıl adı belirtir.
Açıklamalar
![]() |
---|
Bazı durumlarda alter ve referans izinleri birleşimi grantee veri görüntülemek veya yetkisiz işlevler yürütmek izin verebilir. Örneğin: tablo üzerinde alter izni ve işlev başvuru izni olan bir kullanıcı bir işlev hesaplanmış bir sütun oluşturabilir ve bu idam. Bu durumda kullanıcı, hesaplanmış bir sütun üzerinde select izni de gerekir. |
Nesneler hakkında bilgi çeşitli katalog görünümlerinde görülebilir. Daha fazla bilgi için, bkz. Nesne Kataloğu görünümleri (Transact-sql).
Bir şema izinleri hiyerarşisindeki alt üst olan şema tarafından bulunan düzey güvenilir bir nesnedir. Bir nesne üzerinde verilebilecek en belirli ve sınırlı izinleri tarafından implication dahil daha genel izinleri ile birlikte aşağıdaki tabloda listelenir.
Nesne izni |
Nesne izni tarafından açık |
Şema izni tarafından açık |
---|---|---|
ALTER |
DENETİM |
ALTER |
DENETİM |
DENETİM |
DENETİM |
DELETE |
DENETİM |
DELETE |
YÜRÜTME |
DENETİM |
YÜRÜTME |
EKLE |
DENETİM |
EKLE |
RECEIVE |
DENETİM |
DENETİM |
REFERANSLAR |
DENETİM |
REFERANSLAR |
SEÇİN |
RECEIVE |
SEÇİN |
SAHİPLİK AL |
DENETİM |
DENETİM |
GÜNCELLEŞTİRME |
DENETİM |
GÜNCELLEŞTİRME |
GÖRÜNÜMÜ DEĞİŞTİR İZLEME |
DENETİM |
GÖRÜNÜMÜ DEĞİŞTİR İZLEME |
VIEW DEFINITION |
DENETİM |
VIEW DEFINITION |
İzinler
Grantor (veya as seçeneği ile belirtilen anapara) OPTION izni kendisini ya da verilen izni da anlaşılacağı daha yüksek bir izin olması gerekir.
as seçeneği kullanıyorsanız, aşağıdaki ek gereksinimler Uygula.
AS |
Ek izin gerekli |
---|---|
Veritabanı kullanıcı |
Kullanıcı, üyelik özelliklerini Al izni db_securityadminsabit veritabanı rolü, üyelik db_ownersabit veritabanı rolü veya üyelik sysadminsunucu rolü. |
Bir Windows oturumu açma eşlenen veritabanı kullanıcı |
Kullanıcı, üyelik özelliklerini Al izni db_securityadminsabit veritabanı rolü, üyelik db_ownersabit veritabanı rolü veya üyelik sysadminsunucu rolü. |
Bir Windows grubu eşlenen veritabanı kullanıcı |
Windows Grup üyeliği üyelik db_securityadminsabit veritabanı rolü, üyelik db_ownersabit veritabanı rolü veya üyelik sysadminsunucu rolü. |
Sertifika eşlenen veritabanı kullanıcı |
Üyelik db_securityadminsabit veritabanı rolü, üyelik db_ownersabit veritabanı rolü veya üyelik sysadminsunucu rolü. |
Bir asimetrik anahtar eşlenen veritabanı kullanıcı |
Üyelik db_securityadminsabit veritabanı rolü, üyelik db_ownersabit veritabanı rolü veya üyelik sysadminsunucu rolü. |
Herhangi bir sunucu asıl adı eşlenen veritabanı kullanıcı |
Kullanıcı, üyelik özelliklerini Al izni db_securityadminsabit veritabanı rolü, üyelik db_ownersabit veritabanı rolü veya üyelik sysadminsunucu rolü. |
Veritabanı rolü |
Rol üyeliği alter izni db_securityadminsabit veritabanı rolü, üyelik db_ownersabit veritabanı rolü veya üyelik sysadminsunucu rolü. |
Uygulama rolü |
Rol üyeliği alter izni db_securityadminsabit veritabanı rolü, üyelik db_ownersabit veritabanı rolü veya üyelik sysadminsunucu rolü. |
Örnekler
A.Bir tablo üzerinde select izni verme
Aşağıdaki örnek SELECTizni ver RosaQdMtablo Person.Addressde AdventureWorks2012veritabanı.
USE AdventureWorks2012;
GRANT SELECT ON OBJECT::Person.Address TO RosaQdM;
GO
USE AdventureWorks2012;
GRANT SELECT ON OBJECT::Person.Address TO RosaQdM;
GO
B.Saklı yordam üzerinde execute izni verme
Aşağıdaki örnek EXECUTEsaklı yordam HumanResources.uspUpdateEmployeeHireInfoadı verilen bir uygulama rol Recruiting11.
USE AdventureWorks2012;
GRANT EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
TO Recruiting11;
GO
USE AdventureWorks2012;
GRANT EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
TO Recruiting11;
GO
C.grant OPTION görünümüyle başvurular izni verme
Aşağıdaki örnek REFERENCESsütun izni BusinessEntityIDgörünümünde HumanResources.vEmployeekullanıcıya Wanidaile GRANT OPTION.
USE AdventureWorks2012;
GRANT REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee
TO Wanida WITH GRANT OPTION;
GO
USE AdventureWorks2012;
GRANT REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee
TO Wanida WITH GRANT OPTION;
GO
D.Nesne tümcecik kullanmadan tablo üzerinde select izni verme
Aşağıdaki örnek SELECTizni ver RosaQdMtablo Person.Addressde AdventureWorks2012veritabanı.
USE AdventureWorks2012;
GRANT SELECT ON Person.Address TO RosaQdM;
GO
USE AdventureWorks2012;
GRANT SELECT ON Person.Address TO RosaQdM;
GO
E.Bir etki alanı hesabı için bir tablo üzerinde select izni verme
Aşağıdaki örnek SELECTizni ver AdventureWorks2012\RosaQdMtablo Person.Addressde AdventureWorks2012veritabanı.
USE AdventureWorks2012;
GRANT SELECT ON Person.Address TO [AdventureWorks2012\RosaQdM];
GO
USE AdventureWorks2012;
GRANT SELECT ON Person.Address TO [AdventureWorks2012\RosaQdM];
GO
F.Bir rolü bir yordam üzerinde execute izni verme
Aşağıdaki örnek bir rolü oluşturur ve sonra hibe EXECUTEyordam rolü için izin uspGetBillOfMaterialsde AdventureWorks2012veritabanı.
USE AdventureWorks2012;
CREATE ROLE newrole ;
GRANT EXECUTE ON dbo.uspGetBillOfMaterials TO newrole ;
GO
USE AdventureWorks2012;
CREATE ROLE newrole ;
GRANT EXECUTE ON dbo.uspGetBillOfMaterials TO newrole ;
GO
Ayrıca bkz.
Başvuru
Nesne izinleri (Transact-sql) deny
revoke nesne izinleri (Transact-sql)
Nesne Kataloğu görünümleri (Transact-sql)
sys.fn_builtin_permissionsilişkili (Transact-sql)
has_perms_by_name (Transact-sql)
sys.fn_my_permissions (Transact-sql)
Kavramlar
Izinler (veritabanı altyapısı)