Sdílet prostřednictvím


Oprávnění objektu zabezpečení databáze GRANT (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Koncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Uděluje oprávnění pro uživatele databáze, roli databáze nebo aplikační roli v SQL Serveru.

Transact-SQL konvence syntaxe

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
Určuje oprávnění, které lze udělit pro objekt zabezpečení databáze. Seznam oprávnění najdete v části Poznámky dále v tomto tématu.

UŽIVATEL ::database_user
Určuje třídu a název uživatele, pro kterého se oprávnění uděluje. Kvalifikátor oboru (::) je povinný.

ROLE ::database_role
Určuje třídu a název role, pro kterou se oprávnění uděluje. Kvalifikátor oboru (::) je povinný.

APLIKAČNÍ ROLE ::application_role

Určuje třídu a název role aplikace, pro kterou se oprávnění uděluje. Kvalifikátor oboru (::) je povinný.

S MOŽNOSTÍ UDĚLENÍ
Označuje, že objekt zabezpečení bude mít také možnost udělit zadané oprávnění jiným objektům zabezpečení.

DATABASE_PRINCIPAL AS <>
Určuje objekt zabezpečení, ze kterého objekt zabezpečení, který spouští tento dotaz, odvozuje své právo udělit oprávnění.

Database_user
Určuje uživatele databáze.

Database_role
Určuje roli databáze.

Application_role
Platí pro: SQL Server 2008 (10.0.x) a novější, SQL Database.

Určuje roli aplikace.

Database_user_mapped_to_Windows_User
Určuje uživatele databáze mapované na uživatele systému Windows.

Database_user_mapped_to_Windows_Group

Určuje uživatele databáze mapované na skupinu Windows.

Database_user_mapped_to_certificate

Určuje uživatele databáze mapované na certifikát.

Database_user_mapped_to_asymmetric_key

Určuje uživatele databáze namapovaný na asymetrický klíč.

Database_user_with_no_login
Určuje uživatele databáze bez odpovídajícího objektu zabezpečení na úrovni serveru.

Remarks

Informace o objektech zabezpečení databáze jsou viditelné v zobrazení katalogu sys.database_principals . Informace o oprávněních na úrovni databáze jsou viditelné v zobrazení katalogu sys.database_permissions .

Uživatelská oprávnění databáze

Uživatel databáze je zabezpečitelná databáze obsažená v databázi, která je jejím nadřazeným objektem v hierarchii oprávnění. Nejvýraznější a omezená oprávnění, která lze udělit uživateli databáze, jsou uvedena v následující tabulce společně s obecnějšími oprávněními, která je zahrnují implikací.

Oprávnění uživatele databáze Implicitní oprávnění uživatele databáze Implicitní oprávnění databáze
CONTROL CONTROL CONTROL
IMPERSONATE CONTROL CONTROL
ALTER CONTROL ZMĚNA LIBOVOLNÉHO UŽIVATELE
ZOBRAZIT DEFINICI CONTROL ZOBRAZIT DEFINICI

Oprávnění databázové role

Role databáze je zabezpečitelná databáze obsažená v databázi, která je nadřazená v hierarchii oprávnění. Nejvýraznější a omezená oprávnění, která je možné udělit pro roli databáze, jsou uvedená v následující tabulce společně s obecnějšími oprávněními, která je zahrnují implikací.

Oprávnění k databázové roli Implicitní oprávnění databázové role Implicitní oprávnění databáze
CONTROL CONTROL CONTROL
PŘEVEZMĚTE ODPOVĚDNOST CONTROL CONTROL
ALTER CONTROL ZMĚNIT JAKOUKOLI ROLI
ZOBRAZIT DEFINICI CONTROL ZOBRAZIT DEFINICI

Oprávnění role aplikace

Role aplikace je zabezpečitelná databáze obsažená v databázi, která je jejím nadřazeným objektem v hierarchii oprávnění. Nejvýraznější a omezená oprávnění, která je možné udělit v roli aplikace, jsou uvedena v následující části společně s obecnějšími oprávněními, která je zahrnují implikací.

Oprávnění role aplikace Implicitní oprávnění role aplikace Implicitní oprávnění databáze
CONTROL CONTROL CONTROL
ALTER CONTROL ZMĚNIT JAKOUKOLI APLIKAČNÍ ROLI
ZOBRAZIT DEFINICI CONTROL ZOBRAZIT DEFINICI

Permissions

Grantor (nebo objekt zabezpečení zadaný pomocí možnosti AS) musí mít buď oprávnění samotné s možností GRANT OPTION, nebo vyšší oprávnění, které znamená udělení oprávnění.

Pokud používáte možnost AS, platí následující další požadavky.

JAKO granting_principal Další požadovaná oprávnění
Uživatel databáze ZOSOBNIT oprávnění pro uživatele, členství v db_securityadmin pevné databázové roli, členství v db_owner pevné databázové roli nebo členství v pevné roli serveru správce systému.
Uživatel databáze namapovaný na uživatele systému Windows ZOSOBNIT oprávnění pro uživatele, členství v db_securityadmin pevné databázové roli, členství v db_owner pevné databázové roli nebo členství v pevné roli serveru správce systému.
Uživatel databáze namapovaný na skupinu Windows Členství ve skupině Windows, členství v db_securityadmin pevné databázové roli, členství v db_owner pevné databázové roli nebo členství v pevné roli serveru správce systému.
Uživatel databáze namapovaný na certifikát Členství v db_securityadmin pevné databázové roli, členství v db_owner pevné databázové roli nebo členství v pevné roli serveru správce systému.
Uživatel databáze namapovaný na asymetrický klíč Členství v roli databáze db_securityadminfixed, členství v db_owner pevné databázové roli nebo členství v pevné roli serveru správce systému.
Uživatel databáze není namapovaný na žádný objekt zabezpečení serveru ZOSOBNIT oprávnění pro uživatele, členství v db_securityadmin pevné databázové roli, členství v db_owner pevné databázové roli nebo členství v pevné roli serveru správce systému.
Role databáze ALTER oprávnění k roli, členství v roli databáze db_securityadminfixed, členství v db_owner pevné databázové roli nebo členství v pevné roli serveru správce systému.
Aplikační role ALTER oprávnění k roli, členství v db_securityadmin pevné databázové roli, členství v db_owner pevné databázové roli nebo členství v pevné roli serveru správce systému.

Objekty zabezpečení, které mají oprávnění CONTROL k zabezpečitelnému, můžou udělit oprávnění k danému zabezpečitelnému objektu.

Udělení oprávnění CONTROL k databázi, jako jsou členové db_owner pevné databázové role, mohou udělit jakékoli oprávnění k jakémukoli zabezpečitelnému v databázi.

Examples

A. Udělení oprávnění CONTROL uživateli jinému uživateli

Následující příklad uděluje CONTROL uživateli AdventureWorks2025Wanidaoprávnění RolandX .

GRANT CONTROL ON USER::Wanida TO RolandX;  
GO  

B. Udělení oprávnění VIEW DEFINITION pro roli uživateli s možností GRANT OPTION

Následující příklad uděluje VIEW DEFINITION oprávnění k AdventureWorks2025 roli SammamishParking spolu s GRANT OPTION uživatelem JinghaoLiudatabáze .

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

C. Udělení oprávnění IMPERSONATE uživateli k roli aplikace

Následující příklad uděluje IMPERSONATE uživateli oprávnění HamithaL k AdventureWorks2025 roli AccountsPayable17aplikace .

Platí pro: SQL Server 2008 (10.0.x) a novější, SQL Database.

GRANT IMPERSONATE ON USER::HamithaL TO AccountsPayable17;  
GO    

Viz také

Odepřít oprávnění objektu zabezpečení databáze (Transact-SQL)
Oprávnění k objektu zabezpečení databáze REVOKE (Transact-SQL)
sys.database_principals (Transact-SQL)
sys.database_permissions (Transact-SQL)
VYTVOŘIT UŽIVATELE (Transact-SQL)
VYTVOŘENÍ APLIKAČNÍ ROLE (Transact-SQL)
VYTVOŘIT ROLI (Transact-SQL)
GRANT (Transact-SQL)
Oprávnění (databázový stroj)
Hlavní subjekty (databázový stroj)