Nesne izinleri (Transact-SQL)
Bir tablo, görünüm, tabloizinleri verir-değerli işlev, saklı yordam, genişletilmiş saklı yordam, skaler işlev, toplu işlev, hizmet sıra veya eş.
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
Şema içeren bir nesne üzerinde verilebilir izni belirtir.İzinler listesi için bu bölümdeki açıklamalar bölümüne bakın.ALL
Tüm verme tüm olası izin vermez.Tüm verme tüm vermeye eşdeğer ANSI-92 izinleri uygulanabilir belirtilen nesne.Tüm anlamını aşağıdaki gibi değişir:Skalar işlev izinleri: YÜRÜTMEK, BAŞVURUYOR.
Tablo değerli işlev izinleri: DELETE, INSERT, BAŞVURULAR, SELECT, UPDATE.
Saklı yordam izinleri: YÜRÜTME.
Tablo izinleri: DELETE, INSERT, BAŞVURULAR, SELECT, UPDATE.
İzinleri görüntüleme: DELETE, INSERT, BAŞVURULAR, SELECT, UPDATE.
AYRICALIKLAR
İçin dahil ANSI-92 uyumu.Tüm davranışını değiştirmez.column
Bir tablo, görünüm veya tablo sütun adını belirtir-değerli işlev üzerinde izni.Parantez () gereklidir.Bir sütunyalnızca seçim, başvurular ve güncelleştirme izinleri verilebilir.columnizinleri yan tümce ya da güvenliği sağlanabilir adından sonra belirtilebilir.Dikkat tablo-düzey verme bir sütunüzerinde -düzey grant öncelikli değildir.Geriye doğru uyumluluk için izinleri hiyerarşisindeki bu tutarsızlık tutulduktan.
on [nesne : ] [ schema_name ] . object_name
İzin verilen nesneyi belirtir.Nesne tümce isteğe bağlıdır, schema_name belirtilir.Nesne deyim kullanılırsa,niteleyici kapsam(:) gereklidir. schema_name Belirtilmezse, varsayılan şemayı kullanılır.schema_name Belirtilen şema kapsamniteleyici ( .) gereklidir.İÇİN <database_principal>
İzni verilmiş asıl adı belirtir.GRANT SEÇENEĞİ İLE
Patron da diğer ilkeleri için belirtilmiş izni vermek olanağı verilir 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
Bir veritabanı kullanıcı belirtir.Database_role
veritabanı rolübelirtir.Application_role
Bir 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
Bir sertifikaeşlenen veritabanı kullanıcı belirtir.Database_user_mapped_to_asymmetric_key
Bir asimetrik anahtareşlenen veritabanı kullanıcı belirtir.Database_user_with_no_login
Hiçbir karşılık gelen sunucudüzey ile asıl veritabanı kullanıcı belirtir.
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 durum da kullanıcının hesaplanmış bir sütunüzerinde select izni de gerekir. |
katalog görünümleriçeşitli nesneler hakkındaki bilgileri görülebilir.Daha fazla bilgi için, bkz. Nesne Kataloğu görünümleri (Transact-SQL).
Nesne izinleri sıradüzeni içindeki üst olan şema tarafından bulunan bir şema -düzey güvenliği sağlanabilir ' dir.Bir nesne üzerinde verilebilecek en belirli ve sınırlı izinleri, aşağıdaki tablo, bunların patentlerini tarafından dahil daha genel izinleri ile birlikte listelenir.
Nesne izni |
Nesne izni tarafından örtülü |
Şema izni tarafından örtülü |
---|---|---|
ALTER |
DENETİM |
ALTER |
DENETİM |
DENETİM |
DENETİM |
SİL |
DENETİM |
SİL |
YÜRÜTME |
DENETİM |
YÜRÜTME |
EKLE |
DENETİM |
EKLE |
ALMA |
DENETİM |
DENETİM |
BAŞVURULAR |
DENETİM |
BAŞVURULAR |
SEÇİN |
ALMA |
SEÇİN |
SAHİPLİĞİ |
DENETİM |
DENETİM |
GÜNCELLEŞTİRME |
DENETİM |
GÜNCELLEŞTİRME |
GÖRÜNÜM DEĞİŞİKLİK İZLEME |
DENETİM |
GÖRÜNÜM DEĞİŞİKLİK İZLEME |
VIEW DEFINITION |
DENETİM |
VIEW DEFINITION |
İ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ği kullanıyorsanız, aşağıdaki ek gereksinimler Uygula.
AS |
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ü. |
Örnekler
A.tabloüzerinde select izni verme
Aşağıdaki örnek verir SELECT izni ver RosaQdM tablo Person.Address , AdventureWorks2008R2 veritabanı.
USE AdventureWorks2008R2;
GRANT SELECT ON OBJECT::Person.Address TO RosaQdM;
GO
B.saklı yordamüzerinde execute izni verme
Aşağıdaki örnek verir EXECUTE saklı yordamizni HumanResources.uspUpdateEmployeeHireInfo bir uygulama rolü adı verilen Recruiting11.
USE AdventureWorks2008R2;
GRANT EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
TO Recruiting11;
GO
C.grant seçeneği ile bir görünümde başvurular izni verme
Aşağıdaki örnek verir REFERENCES sütunizni BusinessEntityID Görünüm HumanResources.vEmployee kullanıcı için Wanida ile GRANT OPTION.
USE AdventureWorks2008R2;
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 verir SELECT izni ver RosaQdM tablo Person.Address , AdventureWorks2008R2 veritabanı.
USE AdventureWorks2008R2;
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 verir SELECT izni ver AdventureWorks2008R2\RosaQdM tablo Person.Address , AdventureWorks2008R2 veritabanı.
USE AdventureWorks2008R2;
GRANT SELECT ON Person.Address TO [AdventureWorks2008R2\RosaQdM];
GO
F.Bir rolü bir yordam üzerinde execute izni verme
Aşağıdaki örnek bir rol oluşturur ve ardından EXECUTE yordam rolü izni uspGetBillOfMaterials , AdventureWorks2008R2 veritabanı.
USE AdventureWorks2008R2;
CREATE ROLE newrole ;
GRANT EXECUTE ON dbo.uspGetBillOfMaterials TO newrole ;
GO
Ayrıca bkz.