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ı
Tablo, görünüm, tablo değerli işlev, saklı yordam, genişletilmiş saklı yordam, skaler işlev, toplama işlevi, hizmet kuyruğu veya eş anlamlı üzerinde izinler verir.
Transact-SQL söz dizimi kuralları
Syntax
GRANT <permission> [ ,...n ] ON
[ OBJECT :: ][ schema_name ]. object_name [ ( column_name [ ,...n ] ) ]
TO <database_principal> [ ,...n ]
[ WITH GRANT OPTION ]
[ AS <database_principal> ]
<permission> ::=
ALL [ PRIVILEGES ] | permission [ ( column_name [ ,...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
Arguments
permission
Şema içeren bir nesnede verilebilen bir izin belirtir. İzinlerin listesi için bkz. Açıklamalar.
ALL
ALL verilmesi tüm olası izinleri vermez. ALL vermek, belirtilen nesne için geçerli olan tüm ANSI-92 izinlerinin verilmesiyle eşdeğerdir. ALL'nin anlamı aşağıdaki gibi değişir:
- Skaler işlev izinleri: EXECUTE, REFERENCES.
- Tablo değerli işlev izinleri: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
- Saklı yordam izinleri: EXECUTE.
- Tablo izinleri: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
- İzinleri görüntüleme: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
Caution
ALL izni kullanım dışıdır ve yalnızca uyumluluk için korunur.
PRIVILEGES
ANSI-92 uyumluluğuna dahildir. ALL davranışını değiştirmez.
column_name
İzin verilen tablo, görünüm veya tablo değerli işlevdeki bir sütunun adını belirtir. Parantezler ( ) gereklidir. Bir sütunda yalnızca SELECT, REFERENCES, UPDATE ve UNMASK izinleri verilebilir. column_name , permissions yan tümcesinde veya güvenli hale getirilebilir adından sonra belirtilebilir.
Caution
Tablo düzeyinde DENY, sütun düzeyi GRANT'den öncelikli değildir. İzinler hiyerarşisindeki bu tutarsızlık geriye dönük uyumluluk için korunmuştur.
[ NESNE :: ] [ schema_name ] . object_name
İzin verilen nesneyi belirtir. schema_name belirtilirse OBJECT tümceciği isteğe bağlıdır. OBJECT tümceciği kullanılırsa kapsam niteleyicisi (::) gereklidir. schema_name belirtilmezse, varsayılan şema kullanılır. schema_name belirtilirse, şema kapsamı niteleyicisi (.) gereklidir.
TO <database_principal>
İzin verilen sorumluyu belirtir.
GRANT SEÇENEĞI ILE
Sorumluya, belirtilen izni diğer sorumlulara verme yetkisinin de verileceğini gösterir.
AS <database_principal>
Bu sorguyu yürüten sorumlunun izin verme hakkını türetdiği bir sorumlu belirtir.
Database_user
Veritabanı kullanıcılarını belirtir.
Database_role
Bir veritabanı rolü belirtir.
Application_role
Bir uygulama rolü belirtir.
Database_user_mapped_to_Windows_User
Windows kullanıcısına eşlenen bir veritabanı kullanıcısını belirtir.
Database_user_mapped_to_Windows_Group
Bir Windows grubuna eşlenen veritabanı kullanıcısını belirtir.
Database_user_mapped_to_certificate
Bir sertifikayla eşlenen veritabanı kullanıcısını belirtir.
Database_user_mapped_to_asymmetric_key
Asimetrik anahtara eşlenmiş bir veritabanı kullanıcısı belirtir.
Database_user_with_no_login
Karşılık gelen sunucu düzeyi sorumlusu olmayan bir veritabanı kullanıcısı belirtir.
Remarks
Important
Bazı durumlarda ve ALTER izinlerinin REFERENCE birleşimi, izni verenin verileri görüntülemesine veya yetkisiz işlevler yürütmesine izin verebilir. Örneğin: Tablo üzerinde izni olan ve ALTER bir işlev üzerinde izni olan REFERENCE bir kullanıcı, bir işlev üzerinde hesaplanan bir sütun oluşturabilir ve bu sütunun yürütülmesini sağlayabilir. Bu durumda kullanıcının hesaplanan sütun üzerinde de izne ihtiyacı olacaktır SELECT .
Nesneler hakkındaki bilgiler çeşitli katalog görünümlerinde görünür. Daha fazla bilgi için bkz . Nesne Kataloğu Görünümleri (Transact-SQL).
Nesne, izin hiyerarşisindeki üst öğesi olan şema tarafından kapsanan şema düzeyinde güvenli hale getirilebilir bir nesnedir. Bir nesne üzerinde verilebilen en özel ve sınırlı izinler, bunları ima yoluyla içeren daha genel izinlerle birlikte aşağıdaki tabloda listelenmiştir.
| Nesne izni | Nesne izniyle örtülü | Şema izniyle örtülü |
|---|---|---|
ALTER |
CONTROL |
ALTER |
CONTROL |
CONTROL |
CONTROL |
DELETE |
CONTROL |
DELETE |
EXECUTE |
CONTROL |
EXECUTE |
INSERT |
CONTROL |
INSERT |
RECEIVE |
CONTROL |
CONTROL |
REFERENCES |
CONTROL |
REFERENCES |
SELECT |
RECEIVE |
SELECT |
TAKE OWNERSHIP |
CONTROL |
CONTROL |
UPDATE |
CONTROL |
UPDATE |
VIEW CHANGE TRACKING |
CONTROL |
VIEW CHANGE TRACKING |
VIEW DEFINITION |
CONTROL |
VIEW DEFINITION |
Azure Synapse Analytics'te şema bağlama desteklenmez. Bu, temel alınan nesneler değiştirildiğinde ve bir görünüme izinler verildiğinde beklenmeyen davranışlara yol açabilir. Daha fazla bilgi için bkz. Azure Synapse Analytics'te ayrılmış SQL havuzu ve sunucusuz SQL havuzu ile T-SQL görünümleri.
Permissions
Verenin (veya AS seçeneğiyle belirtilen sorumlunun) izninin GRANT OPTIONveya verilen izni gösteren daha yüksek bir izne sahip olması gerekir.
AS seçeneğini kullanıyorsanız aşağıdaki ek gereksinimler geçerlidir.
| AS | Ek izin gerekiyor |
|---|---|
| Veritabanı kullanıcısı |
IMPERSONATE kullanıcı üzerindeki izin, sabit veritabanı rolü üyeliği db_securityadmin , sabit veritabanı rolü üyeliği db_owner veya sabit sunucu rolü üyeliği sysadmin . |
| Windows oturum açma bilgilerine eşlenen veritabanı kullanıcısı |
IMPERSONATE kullanıcı üzerindeki izin, sabit veritabanı rolü üyeliği db_securityadmin , sabit veritabanı rolü üyeliği db_owner veya sabit sunucu rolü üyeliği sysadmin . |
| Bir Windows Grubuna eşlenen veritabanı kullanıcısı | Windows grubu üyeliği, sabit veritabanı rolü üyeliği db_securityadmin , sabit veritabanı rolü üyeliği db_owner veya sabit sunucu rolü üyeliği sysadmin . |
| Sertifikayla eşlenen veritabanı kullanıcısı | Sabit veritabanı rolü üyeliği db_securityadmin , sabit veritabanı rolü üyeliği db_owner veya sabit sunucu rolü üyeliği sysadmin . |
| Asimetrik anahtara eşlenen veritabanı kullanıcısı | Sabit veritabanı rolü üyeliği db_securityadmin , sabit veritabanı rolü üyeliği db_owner veya sabit sunucu rolü üyeliği sysadmin . |
| Veritabanı kullanıcısı hiçbir sunucu sorumlusuyla eşlenmedi |
IMPERSONATE kullanıcı üzerindeki izin, sabit veritabanı rolü üyeliği db_securityadmin , sabit veritabanı rolü üyeliği db_owner veya sabit sunucu rolü üyeliği sysadmin . |
| Veritabanı rolü |
ALTER rolü, sabit veritabanı rolü üyeliği db_securityadmin , sabit veritabanı rolü üyeliği db_owner veya sabit sunucu rolü üyeliği sysadmin . |
| Uygulama rolü |
ALTER rolü, sabit veritabanı rolü üyeliği db_securityadmin , sabit veritabanı rolü üyeliği db_owner veya sabit sunucu rolü üyeliği sysadmin . |
Examples
A. Tabloda SELECT izni verme
Aşağıdaki örnek, veritabanındaki SELECT tabloda RosaQdM kullanıcıya Person.Address izin verirAdventureWorks2025.
Yazılan bu örnek, SQL kimliği doğrulanmış oturum açma için bir kullanıcı kullandığından Microsoft Fabric'te çalışmaz, ancak aynı örnek bir Microsoft Entra ID Fabric kullanıcısı için (örneğin, RosaQdM@contoso.com) işe yarayabilir.
GRANT SELECT ON OBJECT::Person.Address TO RosaQdM;
GO
B. Saklı yordamda EXECUTE izni verme
Aşağıdaki örnek adlı EXECUTEbir uygulama rolüne saklı yordam HumanResources.uspUpdateEmployeeHireInfo üzerinde izin verirRecruiting11.
USE AdventureWorks2022;
GRANT EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
TO Recruiting11;
GO
C. GRANT OPTION ile bir görünümde BAŞVURU izni verme
Aşağıdaki örnek, ile kullanıcıya görünümdeki REFERENCES sütun BusinessEntityID üzerinde izin verirHumanResources.vEmployee.WanidaGRANT OPTION
Yazılan bu örnek, SQL kimliği doğrulanmış oturum açma için bir kullanıcı kullandığından Microsoft Fabric'te çalışmaz, ancak aynı örnek bir Microsoft Entra ID Fabric kullanıcısı için (örneğin, Wanida@contoso.com) işe yarayabilir.
GRANT REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee
TO Wanida WITH GRANT OPTION;
GO
D. OBJECT tümceciği kullanmadan tabloda SELECT izni verme
Aşağıdaki örnek, veritabanındaki SELECT tabloda RosaQdM kullanıcıya Person.Address izin verirAdventureWorks2025.
Yazılan bu örnek, SQL kimliği doğrulanmış oturum açma için bir kullanıcı kullandığından Microsoft Fabric'te çalışmaz, ancak aynı örnek bir Microsoft Entra ID Fabric kullanıcısı için (örneğin, RosaQdM@contoso.com) işe yarayabilir.
GRANT SELECT ON Person.Address TO RosaQdM;
GO
E. Bir etki alanı hesabına tabloda SELECT izni verme
Aşağıdaki örnek, veritabanındaki SELECT tabloda AdventureWorks2022\RosaQdM kullanıcıya Person.Address izin verirAdventureWorks2025.
Yazılan bu örnek, bir etki alanı hesabı kullandığından Microsoft Fabric'te çalışmaz, ancak aynı örnek bir Microsoft Entra ID Fabric kullanıcısı için (örneğin, RosaQdM@contoso.com) işe yarayabilir.
GRANT SELECT ON Person.Address TO [AdventureWorks2022\RosaQdM];
GO
F. Bir role yordam üzerinde EXECUTE izni verme
Aşağıdaki örnek bir rol oluşturur ve ardından veritabanındaki EXECUTE yordamda uspGetBillOfMaterials rol için izin verirAdventureWorks2025.
CREATE ROLE newrole ;
GRANT EXECUTE ON dbo.uspGetBillOfMaterials TO newrole ;
GO
G. Sütunda UNMASK izni verme
Aşağıdaki örnek, tablosundaki UNMASK sütun email için Data.Membership bir parçası olan iznini kullanıcıya OutreachCoordinatorverir.
Dinamik veri maskeleme şu anda Microsoft Fabric'te desteklenmiyor.
GRANT UNMASK ON OBJECT::Data.Membership (email) to OutreachCoordinator;
GO
İlgili içerik
- DENY Nesne İzinleri (Transact-SQL)
- REVOKE Nesne İzinleri (Transact-SQL)
- nesne kataloğu görünümlerini (Transact-SQL)
- İzinler (Veritabanı Altyapısı)
- Sorumluları (Veritabanı Altyapısı)
- Securables
- sys.fn_builtin_permissions (Transact-SQL)
- HAS_PERMS_BY_NAME (Transact-SQL)
- sys.fn_my_permissions (Transact-SQL)
- Dinamik veri maskeleme
- Row-Level güvenliği