Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Uděluje oprávnění k zabezpečitelnému objektu zabezpečení. Obecným konceptem je GRANT <some permission> ON <some object> TO <some user, login, or group>. Obecné informace o oprávněních naleznete v tématu Oprávnění (databázový stroj).
Syntax
Syntaxe pro SQL Server, Azure SQL Database a databázi SQL Fabric.
-- Simplified syntax for GRANT
GRANT { ALL [ PRIVILEGES ] }
| permission [ ( column [ , ...n ] ) ] [ , ...n ]
[ ON [ class :: ] securable ] TO principal [ , ...n ]
[ WITH GRANT OPTION ] [ AS principal ]
Syntaxe pro Azure Synapse Analytics, paralelní datový sklad a sklad Microsoft Fabric.
GRANT
<permission> [ , ...n ]
[ ON [ <class_type> :: ] securable ]
TO principal [ , ...n ]
[ WITH GRANT OPTION ]
[;]
<permission> ::=
{ see the tables below }
<class_type> ::=
{
LOGIN
| DATABASE
| OBJECT
| ROLE
| SCHEMA
| USER
}
Arguments
ALL
Tato možnost je zastaralá a udržuje se pouze kvůli zpětné kompatibilitě. Neuděluje všechna možná oprávnění. Udělení ALL odpovídá udělení následujících oprávnění.
| Securable | Permissions |
|---|---|
| Database |
BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLEa CREATE VIEW |
| Skalární funkce |
EXECUTE a REFERENCES |
| Tabulková funkce |
DELETE, INSERT, REFERENCES, SELECTa UPDATE |
| Uložená procedura | EXECUTE |
| Table |
DELETE, INSERT, REFERENCES, SELECTa UPDATE |
| View |
DELETE, INSERT, REFERENCES, SELECTa UPDATE |
PRIVILEGES
Součástí je dodržování předpisů ISO. Nemění chování ALL.
permission
Název oprávnění. Platné mapování oprávnění na zabezpečitelné jsou popsány v následujících částech.
column
Určuje název sloupce v tabulce, u které se oprávnění udělují. Jsou vyžadovány závorky ( a ).
class
Určuje třídu zabezpečitelné, pro kterou se oprávnění uděluje. Je vyžadován kvalifikátor oboru ::.
securable
Určuje zabezpečitelný, pro který se oprávnění uděluje.
TO ředitel
Název objektu zabezpečení. Objekty zabezpečení, u kterých lze udělit oprávnění k zabezpečitelnému, se liší v závislosti na zabezpečitelném objektu. Platné kombinace najdete v následujících částech.
MOŽNOST GRANTU
Označuje, že příjemce bude mít také možnost udělit zadané oprávnění jiným objektům zabezpečení.
AS ředitel
Pomocí klauzule AS <principal> uveďte, že objekt zabezpečení zaznamenaný jako grantor oprávnění by měl být jiným objektem než osoba provádějící příkaz. Například předpokládáme, že Mary uživatele má principal_id12a Raul uživatele je hlavní 15. Mary spustí GRANT SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; Nyní tabulka sys.database_permissions označuje, že grantor_principal_id byl 15 (Raul), i když příkaz skutečně spustil uživatel 12 (Mary).
Použití klauzule AS se obvykle nedoporučuje, pokud není nutné explicitně definovat řetěz oprávnění. Další informace najdete v tématu Souhrn algoritmu kontroly oprávnění.
Použití AS v tomto příkazu neznamená schopnost zosobnit jiného uživatele.
Remarks
Úplná syntaxe příkazu GRANT je složitá. Předchozí diagram syntaxe byl zjednodušen tak, aby upoutat pozornost na jeho strukturu. Kompletní syntaxe pro udělení oprávnění pro konkrétní zabezpečitelné je popsána v článcích uvedených dále v tomto článku.
Příkaz REVOKE lze použít k odebrání udělených oprávnění a příkaz DENY lze použít k tomu, aby objekt zabezpečení nemohl získat konkrétní oprávnění prostřednictvím GRANT.
Udělení oprávnění odebere DENY nebo REVOKE daného oprávnění k danému zabezpečitelnému. Pokud je stejné oprávnění odepřeno ve vyšším rozsahu, který obsahuje zabezpečitelné, má přednost DENY. Odvolání uděleného oprávnění ve vyšším rozsahu ale nemá přednost.
Oprávnění na úrovni databáze jsou udělena v rámci rozsahu zadané databáze. Pokud uživatel potřebuje oprávnění k objektům v jiné databázi, vytvořte uživatelský účet v jiné databázi nebo udělte uživatelskému účtu přístup k druhé databázi a aktuální databázi.
Caution
DENY na úrovni tabulky nemá přednost před GRANTna úrovni sloupce . Tato nekonzistence v hierarchii oprávnění byla zachována kvůli zpětné kompatibilitě. V budoucí verzi se odebere.
Systémová uložená procedura sp_helprotect hlásí oprávnění k zabezpečitelné úrovni databáze.
V Microsoft Fabric se CREATE USER momentálně nedají explicitně spustit. Při spuštění GRANT nebo DENY se uživatel vytvoří automaticky.
S MOŽNOSTÍ UDĚLENÍ
GRANT ... WITH GRANT OPTION určuje, že objekt zabezpečení, který oprávnění přijímá, má možnost udělit zadané oprávnění jiným účtům zabezpečení. Pokud je objekt zabezpečení, který obdrží oprávnění, role nebo skupina Systému Windows, musí být klauzule AS použita, když je potřeba dále udělit oprávnění k objektu uživatelům, kteří nejsou členy skupiny nebo role. Vzhledem k tomu, že pouze uživatel, nikoli skupina nebo role, může spustit příkaz GRANT, musí konkrétní člen skupiny nebo role použít klauzuli AS k explicitní vyvolání členství role nebo skupiny při udělení oprávnění. Následující příklad ukazuje, jak se WITH GRANT OPTION používá při udělení role nebo skupině Windows.
-- Execute the following as a database owner
GRANT EXECUTE ON TestProc TO TesterRole WITH GRANT OPTION;
EXEC sp_addrolemember TesterRole, User1;
-- Execute the following as User1
-- The following fails because User1 does not have the permission as the User1
GRANT EXECUTE ON TestProc TO User2;
-- The following succeeds because User1 invokes the TesterRole membership
GRANT EXECUTE ON TestProc TO User2 AS TesterRole;
Graf oprávnění SQL Serveru
Plakátový graf všech oprávnění databázového stroje ve formátu PDF najdete v tématu https://aka.ms/sql-permissions-poster.
Permissions
Grantor (nebo objekt zabezpečení zadaný pomocí možnosti AS) musí mít buď oprávnění samotná s GRANT OPTION, nebo vyšší oprávnění, které znamená udělení oprávnění. Pokud používáte možnost AS, platí další požadavky. Podrobnosti najdete v článku o zabezpečitelném konkrétním článku.
Vlastníci objektů můžou udělit oprávnění k objektům, které vlastní. Objekty zabezpečení s oprávněním CONTROL pro zabezpečitelné můžou udělit oprávnění k danému zabezpečitelnému.
Udělení oprávnění CONTROL k databázi, jako jsou členové db_owner pevné databázové role, můžou udělit jakékoli oprávnění k jakémukoli zabezpečitelnému v databázi. Udělení oprávnění CONTROL schématu může udělit jakékoli oprávnění k libovolnému objektu v rámci schématu.
Examples
V následující tabulce jsou uvedeny zabezpečitelné položky a články, které popisují syntaxi specifickou pro zabezpečitelnost.
| Securable | Syntaxe GRANT |
|---|---|
| Role aplikace | |
| Assembly | |
| Asymetrický klíč | oprávnění asymetrického klíče GRANT (Transact-SQL) |
| Skupina dostupnosti | oprávnění skupiny dostupnosti GRANT (Transact-SQL) |
| Certificate | |
| Contract | |
| Database | |
| Přihlašovací údaje s vymezeným oborem databáze | |
| Endpoint | |
| Full-Text Katalog | |
| Full-Text Stoplist | |
| Function | oprávnění k objektu GRANT (Transact-SQL) |
| Login | |
| Typ zprávy | |
| Object | oprávnění k objektu GRANT (Transact-SQL) |
| Queue | oprávnění k objektu GRANT (Transact-SQL) |
| Vazba vzdálené služby | |
| Role | |
| Route | |
| Schema | oprávnění k schématu GRANT (Transact-SQL) |
| Seznam vlastností vyhledávání | oprávnění k seznamu vlastností hledání GRANT (Transact-SQL) |
| Server | |
| Service | |
| Uložená procedura | oprávnění k objektu GRANT (Transact-SQL) |
| Symetrický klíč | UDĚLIT oprávnění symetrického klíče (Transact-SQL) |
| Synonym | oprávnění k objektu GRANT (Transact-SQL) |
| Systémové objekty | UDĚLIT oprávnění k systémovému objektu (Transact-SQL) |
| Table | oprávnění k objektu GRANT (Transact-SQL) |
| Typ | |
| User | |
| View | oprávnění k objektu GRANT (Transact-SQL) |
| Kolekce schémat XML | oprávnění k kolekci schématu XML (Transact-SQL) |