GRANT Oprávnění k databázi (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í k databázi na SQL Serveru.

Transact-SQL konvence syntaxe

Syntax


GRANT <permission> [ ,...n ]
    TO <database_principal> [ ,...n ] [ WITH GRANT OPTION ]
    [ AS <database_principal> ]

<permission>::=
permission | ALL [ PRIVILEGES ]

<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

povolení Určuje oprávnění, které lze udělit v databázi. Seznam oprávnění najdete v části Poznámky dále v tomto tématu.

Všechna tato možnost neuděluje všechna možná oprávnění. Udělení ALL je ekvivalentní udělení následujících oprávnění: BACKUP, LOG, DATABASE, BACKUP, , CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, a CREATE RULE. CREATE TABLECREATE VIEW

OPRÁVNĚNÍ zahrnutá pro dodržování předpisů ANSI-92. Nemění chování funkce ALL.

S GRANT MOŽNOSTÍ Označuje, že zmocnitel bude mít také možnost udělit stanovené povolení ostatním zmocnitelům.

AS <database_principal> 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_roleplatí pro: SQL Server 2008 (10.0.x) a novější, SQL Database

Určuje roli aplikace.

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

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

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

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

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

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

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

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

Important

Kombinace oprávnění ALTER a REFERENCE v některých případech může uživateli umožnit zobrazit data nebo spustit neautorizované funkce. Příklad: Uživatel s oprávněním ALTER pro tabulku a ODKAZ na funkci může vytvořit počítaný sloupec nad funkcí a nechat ho spustit. V tomto případě musí mít uživatel také oprávnění SELECT pro počítaný sloupec.

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

Povolení k databázi Implicitní oprávnění databáze Implicitní oprávnění serveru
SPRAVOVAT DATABASE HROMADNÉ OPERACE
Platí pro: SQL Database.
CONTROL řídicí server
ALTER CONTROL Změnit libovolný DATABASE
Změnit libovolný APPLICATION ROLE ALTER řídicí server
Změnit libovolný ASSEMBLY ALTER řídicí server
Změnit libovolný ASYMMETRIC KEY ALTER řídicí server
Změnit libovolný CERTIFICATE ALTER řídicí server
Změnit libovolný COLUMN ENCRYPTION KEY ALTER řídicí server
ZMĚNIT JAKOUKOLI COLUMN MASTER KEY DEFINICI ALTER řídicí server
Změnit libovolný CONTRACT ALTER řídicí server
UPRAVTE JAKÝKOLI DATABASE AUDIT ALTER Změnit libovolný SERVER AUDIT
UPRAVTE LIBOVOLNÉ DATABASE DDL TRIGGER ALTER řídicí server
ALTER ANY DATABASEEVENT NOTIFICATION ALTER Změnit libovolný EVENT NOTIFICATION
ALTER ANY DATABASEEVENT SESSION
Platí pro: SQL Database.
ALTER Změnit libovolný EVENT SESSION
Změnit libovolný DATABASE SCOPED CONFIGURATION
platí pro: SQL Server 2016 (13.x) a novější, SQL Database.
CONTROL řídicí server
ZMĚNIT JAKÝKOLIV DATOVÝ PROSTOR ALTER řídicí server
Změnit libovolný EXTERNAL DATA SOURCE ALTER řídicí server
Změnit libovolný EXTERNAL FILE FORMAT ALTER řídicí server
Změnit libovolný EXTERNAL LIBRARY
Platí pro: SQL Server 2017 (14.x).
CONTROL řídicí server
Změnit libovolný FULLTEXT CATALOG ALTER řídicí server
ZMĚNIT JAKOUKOLIV MASKU CONTROL řídicí server
Změnit libovolný MESSAGE TYPE ALTER řídicí server
Změnit libovolný REMOTE SERVICE BINDING ALTER řídicí server
Změnit libovolný ROLE ALTER řídicí server
Změnit libovolný ROUTE ALTER řídicí server
Změnit libovolný SCHEMA ALTER řídicí server
Změnit libovolný SECURITY POLICY
Platí pro: Azure SQL Database.
CONTROL řídicí server
Změnit libovolný SENSITIVITY CLASSIFICATION
Platí pro: SQL Server (SQL Server 2019 a novější), Azure SQL Database.
CONTROL řídicí server
Změnit libovolný SERVICE ALTER řídicí server
Změnit libovolný SYMMETRIC KEY ALTER řídicí server
Změnit libovolný USER ALTER řídicí server
AUTHENTICATE CONTROL OVĚŘENÍ SERVERU
BACKUP DATABASE CONTROL řídicí server
BACKUP PROTOKOL CONTROL řídicí server
CHECKPOINT CONTROL řídicí server
CONNECT REPLIKACE CONNECT řídicí server
REPLIKACE CONNECT CONTROL řídicí server
CONTROL CONTROL řídicí server
CREATE AGGREGATE ALTER řídicí server
VYTVOŘTE LIBOVOLNÉ EXTERNAL LIBRARY
Platí pro: SQL Server 2017 (14.x).
CONTROL řídicí server
CREATE ASSEMBLY Změnit libovolný ASSEMBLY řídicí server
CREATE ASYMMETRIC KEY Změnit libovolný ASYMMETRIC KEY řídicí server
CREATE CERTIFICATE Změnit libovolný CERTIFICATE řídicí server
CREATE CONTRACT Změnit libovolný CONTRACT řídicí server
CREATE DATABASE CONTROL VYTVOŘTE LIBOVOLNÉ DATABASE
CREATE DATABASE DDL EVENT NOTIFICATION ALTER ANY DATABASEEVENT NOTIFICATION VYTVOŘIT DDL EVENT NOTIFICATION
CREATE DEFAULT ALTER řídicí server
CREATE FULLTEXT CATALOG Změnit libovolný FULLTEXT CATALOG řídicí server
CREATE FUNCTION ALTER řídicí server
CREATE MESSAGE TYPE Změnit libovolný MESSAGE TYPE řídicí server
CREATE PROCEDURE ALTER řídicí server
CREATE QUEUE ALTER řídicí server
CREATE REMOTE SERVICE BINDING Změnit libovolný REMOTE SERVICE BINDING řídicí server
CREATE ROLE Změnit libovolný ROLE řídicí server
CREATE ROUTE Změnit libovolný ROUTE řídicí server
CREATE RULE ALTER řídicí server
CREATE SCHEMA Změnit libovolný SCHEMA řídicí server
CREATE SERVICE Změnit libovolný SERVICE řídicí server
CREATE SYMMETRIC KEY Změnit libovolný SYMMETRIC KEY řídicí server
CREATE SYNONYM ALTER řídicí server
CREATE TABLE ALTER řídicí server
CREATE TYPE ALTER řídicí server
CREATE VIEW ALTER řídicí server
CREATE XML SCHEMA COLLECTION ALTER řídicí server
DELETE CONTROL řídicí server
EXECUTE CONTROL řídicí server
SPUŠTĚNÍ LIBOVOLNÉHO EXTERNÍHO ENDPOINT
Platí pro: Azure SQL Database.
CONTROL řídicí server
SPUŠTĚNÍ LIBOVOLNÉHO EXTERNÍHO SKRIPTU
Platí pro: SQL Server 2016 (13.x).
CONTROL řídicí server
SPUŠTĚNÍ EXTERNÍHO SKRIPTU
platí pro: SQL Server 2019 (15.x).
SPUŠTĚNÍ LIBOVOLNÉHO EXTERNÍHO SKRIPTU řídicí server
INSERT CONTROL řídicí server
UKONČENÍ DATABASE PŘIPOJENÍ
Platí pro: Azure SQL Database.
CONTROL ZÁMĚNA JAKÉKOLIV PŘIPOJENÍ
REFERENCES CONTROL řídicí server
SELECT CONTROL řídicí server
SHOWPLAN CONTROL ALTEROVÁ STOPA
PŘIHLÁŠENÍ K ODBĚRU OZNÁMENÍ DOTAZŮ CONTROL řídicí server
PŘEVEZMĚTE ODPOVĚDNOST CONTROL řídicí server
UNMASK CONTROL řídicí server
UPDATE CONTROL řídicí server
VIEW JAKÁKOLI COLUMN ENCRYPTION KEY DEFINICE CONTROL VIEW JAKÁKOLI DEFINICE
VIEW JAKÁKOLI COLUMN MASTER KEY DEFINICE CONTROL VIEW JAKÁKOLI DEFINICE
VIEW DATABASE STAV VÝKONU

Platí pro: SQL Server 2022 (16.x) a novější verze.
VIEW DATABASE STÁT VIEW STAV VÝKONU SERVERU
VIEW DATABASE STAV ZABEZPEČENÍ

Platí pro: SQL Server 2022 (16.x) a novější verze.
VIEW DATABASE STÁT VIEW STAV ZABEZPEČENÍ SERVERU
VIEW DATABASE STÁT CONTROL VIEW STAV SERVERU
VIEW DEFINICE CONTROL VIEW JAKÁKOLI DEFINICE
VIEW DEFINICE VÝKONU

Platí pro: SQL Server 2022 (16.x) a novější verze.
VIEW DEFINICE VIEW JAKÁKOLI DEFINICE VÝKONU
VIEW DEFINICE ZABEZPEČENÍ

Platí pro: SQL Server 2022 (16.x) a novější verze.
VIEW DEFINICE VIEW JAKÁKOLI DEFINICE ZABEZPEČENÍ

Permissions

Poskytovatel (nebo zmocnitel uvedený u AS option) musí mít buď samotné oprávnění s GRANT OPTION, nebo vyšší oprávnění, které znamená, že povolení bylo uděleno.

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 přihlášení k 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 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 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 db_securityadmin pevné databázové roli, č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.

Vlastníci objektů můžou udělit oprávnění k objektům, které vlastní. 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 SERVER, jako jsou členové pevné role serveru sysadmin, mohou udělit jakékoli oprávnění na jakémkoli zabezpečitelném serveru na serveru.

Examples

A. Udělení oprávnění k vytváření tabulek

Následující příklad uděluje CREATE TABLE oprávnění k AdventureWorks databázi uživateli MelanieK.

USE AdventureWorks;
GRANT CREATE TABLE TO MelanieK;
GO

B. Udělení oprávnění SHOWPLAN roli aplikace

Následující příklad uděluje SHOWPLAN oprávnění k AdventureWorks2025 databázi k roli AuditMonitoraplikace .

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

USE AdventureWorks2022;
GRANT SHOWPLAN TO AuditMonitor;
GO

C. Udělení CREATE VIEW s GRANT možností OPTION

Následující příklad uděluje CREATE VIEW oprávnění k AdventureWorks2025 databázi uživateli CarmineEs s právem udělit CREATE VIEW jiným objektům zabezpečení.

USE AdventureWorks2022;
GRANT CREATE VIEW TO CarmineEs WITH GRANT OPTION;
GO

D. Udělení oprávnění CONTROL databázovému uživateli

Následující příklad uděluje CONTROL oprávnění k AdventureWorks2025 databázi uživateli Sarahdatabáze . Uživatel musí existovat v databázi a kontext musí být nastaven na databázi.

USE AdventureWorks2022;
GRANT CONTROL ON DATABASE::AdventureWorks2022 TO Sarah;
GO