Aracılığıyla paylaş


GRANT Veritabanı Asıl İzinleri (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

SQL Server'da veritabanı kullanıcısı, veritabanı rolü veya uygulama rolü üzerinde izinler verir.

Transact-SQL söz dizimi kuralları

Syntax

GRANT permission [ ,...n ]    
    ON   
    {  [ USER :: database_user ]  
     | [ ROLE :: database_role ]  
     | [ APPLICATION ROLE :: application_role ]  
    }  
    TO <database_principal> [ ,...n ]  
       [ WITH GRANT OPTION ]  
       [ AS <database_principal> ]  
  
<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
Veritabanı sorumlusunda verilebilen bir izin belirtir. İzinlerin listesi için bu konunun devamındaki Açıklamalar bölümüne bakın.

KULLANICI ::database_user
İzin verilen kullanıcının sınıfını ve adını belirtir. Kapsam niteleyicisi (::) gereklidir.

ROL ::database_role
İzin verilen rolün sınıfını ve adını belirtir. Kapsam niteleyicisi (::) gereklidir.

UYGULAMA ROLÜ ::application_role

İzin verilen uygulama rolünün sınıfını ve adını belirtir. Kapsam niteleyicisi (::) gereklidir.

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
Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri, SQL Veritabanı.

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

Veritabanı sorumluları hakkındaki bilgiler sys.database_principals katalog görünümünde görünür. Veritabanı düzeyinde izinler hakkındaki bilgiler sys.database_permissions katalog görünümünde görünür.

Veritabanı Kullanıcı İzinleri

Veritabanı kullanıcısı, izinler hiyerarşisinde üst öğesi olan veritabanı tarafından kapsanan veritabanı düzeyinde güvenli hale getirilebilir bir kullanıcıdır. Bir veritabanı kullanıcısında verilebilen en özel ve sınırlı izinler aşağıdaki tabloda listelenmiştir ve bunları ima yoluyla içeren daha genel izinlerle birlikte listelenmiştir.

Veritabanı kullanıcı izni Veritabanı kullanıcı izniyle örtülü Veritabanı izniyle örtülü
CONTROL CONTROL CONTROL
IMPERSONATE CONTROL CONTROL
ALTER CONTROL KULLANICIYI DEĞİŞTİR
TANıMı GÖRÜNTÜLE CONTROL TANıMı GÖRÜNTÜLE

Veritabanı Rolü İzinleri

Veritabanı rolü, izinler hiyerarşisinde üst öğesi olan veritabanı tarafından kapsanan veritabanı düzeyinde güvenli hale getirilebilir bir roldür. Veritabanı rolünde verilebilen en özel ve sınırlı izinler aşağıdaki tabloda listelenmiştir ve bunları ima yoluyla içeren daha genel izinlerle birlikte listelenmiştir.

Veritabanı rolü izni Veritabanı rolü izniyle örtülü Veritabanı izniyle örtülü
CONTROL CONTROL CONTROL
SAHIPLENMEK CONTROL CONTROL
ALTER CONTROL HERHANGI BIR ROLÜ DEĞIŞTIRME
TANıMı GÖRÜNTÜLE CONTROL TANıMı GÖRÜNTÜLE

Uygulama Rolü İzinleri

Uygulama rolü, izinler hiyerarşisinde üst öğesi olan veritabanı tarafından kapsanan veritabanı düzeyinde güvenli hale getirilebilir bir roldür. Bir uygulama rolünde verilebilen en özel ve sınırlı izinler, bunları ima yoluyla içeren daha genel izinlerle birlikte aşağıda listelenmiştir.

Uygulama rolü izni Uygulama rolü izniyle örtülü Veritabanı izniyle örtülü
CONTROL CONTROL CONTROL
ALTER CONTROL TÜM UYGULAMA ROLLERINI DEĞIŞTIRME
TANıMı GÖRÜNTÜLE CONTROL TANıMı GÖRÜNTÜLE

Permissions

Verenin (veya AS seçeneğiyle belirtilen sorumlunun), GRANT OPTION ile iznin kendisine veya verilen izni ima eden daha yüksek bir izne sahip olması gerekir.

AS seçeneğini kullanıyorsanız aşağıdaki 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.
Bir Windows Kullanıcısına 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_securityadminfixed 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_securityadminfixed 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.

Bir güvenli hale getirilebilir üzerinde CONTROL iznine sahip sorumlular, bu güvenli hale getirilebilir öğe üzerinde 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.

Examples

A. Kullanıcıya başka bir kullanıcıya CONTROL izni verme

Aşağıdaki örnek, kullanıcıya CONTROLAdventureWorks2025kullanıcı üzerinde Wanida izin verirRolandX.

GRANT CONTROL ON USER::Wanida TO RolandX;  
GO  

B. GRANT OPTION ile kullanıcıya rol üzerinde VIEW DEFINITION izni verme

Aşağıdaki örnek, ile VIEW DEFINITION birlikte veritabanı kullanıcısına AdventureWorks2025rol SammamishParking üzerinde GRANT OPTION izin verirJinghaoLiu.

GRANT VIEW DEFINITION ON ROLE::SammamishParking   
    TO JinghaoLiu WITH GRANT OPTION;  
GO  

C. Uygulama rolüne kullanıcı üzerinde KIMLIĞE BÜRÜNme izni verme

Aşağıdaki örnek, kullanıcı IMPERSONATE için uygulama rolüne HamithaLAdventureWorks2025 izin verirAccountsPayable17.

Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri, SQL Veritabanı.

GRANT IMPERSONATE ON USER::HamithaL TO AccountsPayable17;  
GO    

Ayrıca Bkz.

DENY Veritabanı Asıl İzinleri (Transact-SQL)
REVOKE Veritabanı Asıl İzinleri (Transact-SQL)
sys.database_principals (Transact-SQL)
sys.database_permissions (Transact-SQL)
KULLANICI OLUŞTUR (Transact-SQL)
UYGULAMA ROLÜ OLUŞTURMA (Transact-SQL)
ROL OLUŞTUR (Transact-SQL)
HİBE (Transact-SQL)
İzinler (Veritabanı Altyapısı)
Sorumluları (Veritabanı Altyapısı)