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í pro tabulku, zobrazení, funkci s hodnotou tabulky, uloženou proceduru, rozšířenou uloženou proceduru, skalární funkci, agregační funkci, frontu služby nebo synonyma.
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
Určuje oprávnění, které lze udělit u objektu obsaženého ve schématu. Seznam oprávnění najdete v části Poznámky.
ALL
Udělení všech možných oprávnění neuděluje všechna možná oprávnění. Udělení funkce ALL odpovídá udělení všech oprávnění ANSI-92 použitelných pro zadaný objekt. Význam ALL se liší takto:
- Oprávnění skalárních funkcí: EXECUTE, REFERENCES.
- Oprávnění funkce s hodnotou tabulky: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
- Oprávnění uložené procedury: EXECUTE.
- Oprávnění tabulky: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
- Zobrazit oprávnění: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
Caution
Oprávnění ALL je zastaralé a udržuje se pouze kvůli kompatibilitě.
PRIVILEGES
Součástí je dodržování předpisů ANSI-92. Nemění chování funkce ALL.
column_name
Určuje název sloupce v tabulce, zobrazení nebo funkci s hodnotou tabulky, pro kterou se oprávnění uděluje. Jsou vyžadovány závorky (). U sloupce je možné udělit pouze oprávnění SELECT, REFERENCES, UPDATE a UNMASK. column_name lze zadat v klauzuli oprávnění nebo za zabezpečitelným názvem.
Caution
Odepření na úrovni tabulky nemá přednost před udělením na úrovni sloupce. Tato nekonzistence v hierarchii oprávnění byla zachována kvůli zpětné kompatibilitě.
NA [ OBJEKT :: ] [ schema_name ] . object_name
Určuje objekt, u kterého se oprávnění uděluje. Pokud je zadána schema_name, je fráze OBJECT volitelná. Pokud se použije fráze OBJECT, je vyžadován kvalifikátor oboru (::). Pokud není zadán schema_name , použije se výchozí schéma. Pokud je zadán schema_name , je vyžadován kvalifikátor oboru schématu (.).
NA <database_principal>
Určuje objekt zabezpečení, ke kterému se oprávnění uděluje.
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
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
Important
Kombinace ALTER a REFERENCE oprávnění v některých případech může uživateli udělit oprávnění k zobrazení dat nebo spuštění neautorizovaných funkcí. Příklad: Uživatel s oprávněním ALTER k tabulce a REFERENCE oprávnění funkce může vytvořit počítaný sloupec nad funkcí a nechat ho spustit. V takovém případě by uživatel také potřeboval SELECT oprávnění k počítaného sloupci.
Informace o objektech jsou viditelné v různých zobrazeních katalogu. Další informace naleznete v tématu Zobrazení katalogu objektů (Transact-SQL).
Objekt je zabezpečitelná na úrovni schématu obsažená schématem, který je jeho nadřazeným objektem v hierarchii oprávnění. Nejvýraznější a omezená oprávnění, která lze udělit u objektu, jsou uvedena v následující tabulce společně s obecnějšími oprávněními, která je zahrnují implikací.
| Oprávnění objektu | Implicitní oprávnění objektu | Implicitní oprávnění schématu |
|---|---|---|
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 |
Vazba schématu není ve službě Azure Synapse Analytics podporovaná, což může vést k neočekávanému chování při změně podkladových objektů a udělení oprávnění k zobrazení. Další informace najdete v tématu Zobrazení T-SQL s vyhrazeným fondem SQL a bezserverovým fondem SQL ve službě Azure Synapse Analytics.
Permissions
Grantor (nebo objekt zabezpečení zadaný s možností 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í následující další požadavky.
| AS | Další požadovaná oprávnění |
|---|---|
| Uživatel databáze |
IMPERSONATE 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 sysadmin pevné roli serveru. |
| Uživatel databáze namapovaný na přihlášení k Systému Windows |
IMPERSONATE 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 sysadmin pevné roli serveru. |
| 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 sysadmin pevné roli serveru. |
| 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 sysadmin pevné roli serveru. |
| 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 sysadmin pevné roli serveru. |
| Uživatel databáze není namapovaný na žádný objekt zabezpečení serveru |
IMPERSONATE 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 sysadmin pevné roli serveru. |
| 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 sysadmin pevné roli serveru. |
| 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 sysadmin pevné roli serveru. |
Examples
A. Udělení oprávnění SELECT v tabulce
Následující příklad uděluje SELECT uživateli RosaQdM oprávnění k tabulce Person.Address v AdventureWorks2025 databázi.
Tento příklad jako napsaný nefunguje v Microsoft Fabric, protože používá uživatele pro ověřené přihlášení SQL, ale tento stejný příklad by fungoval pro uživatele Microsoft Entra ID Fabric, RosaQdM@contoso.comnapříklad .
GRANT SELECT ON OBJECT::Person.Address TO RosaQdM;
GO
B. Udělení oprávnění EXECUTE pro uloženou proceduru
Následující příklad uděluje EXECUTE oprávnění pro uloženou proceduru HumanResources.uspUpdateEmployeeHireInfo k roli aplikace volaný Recruiting11.
USE AdventureWorks2022;
GRANT EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
TO Recruiting11;
GO
C. Udělení oprávnění REFERENCE v zobrazení pomocí MOŽNOSTI GRANT
Následující příklad uděluje REFERENCES oprávnění ke sloupci BusinessEntityID v zobrazení HumanResources.vEmployee uživateli Wanida s GRANT OPTION.
Tento příklad jako napsaný nefunguje v Microsoft Fabric, protože používá uživatele pro ověřené přihlášení SQL, ale tento stejný příklad by fungoval pro uživatele Microsoft Entra ID Fabric, Wanida@contoso.comnapříklad .
GRANT REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee
TO Wanida WITH GRANT OPTION;
GO
D. Udělení oprávnění SELECT v tabulce bez použití fráze OBJECT
Následující příklad uděluje SELECT uživateli RosaQdM oprávnění k tabulce Person.Address v AdventureWorks2025 databázi.
Tento příklad jako napsaný nefunguje v Microsoft Fabric, protože používá uživatele pro ověřené přihlášení SQL, ale tento stejný příklad by fungoval pro uživatele Microsoft Entra ID Fabric, RosaQdM@contoso.comnapříklad .
GRANT SELECT ON Person.Address TO RosaQdM;
GO
E. Udělení oprávnění SELECT pro tabulku účtu domény
Následující příklad uděluje SELECT uživateli AdventureWorks2022\RosaQdM oprávnění k tabulce Person.Address v AdventureWorks2025 databázi.
Tento příklad jako napsaný nefunguje v Microsoft Fabric, protože používá účet domény, ale tento stejný příklad by fungoval pro uživatele Microsoft Entra ID Fabric, RosaQdM@contoso.comnapříklad .
GRANT SELECT ON Person.Address TO [AdventureWorks2022\RosaQdM];
GO
F. Udělení oprávnění EXECUTE pro proceduru roli
Následující příklad vytvoří roli a pak udělí EXECUTE oprávnění k roli pro proceduru uspGetBillOfMaterialsAdventureWorks2025 v databázi.
CREATE ROLE newrole ;
GRANT EXECUTE ON dbo.uspGetBillOfMaterials TO newrole ;
GO
G. Udělení oprávnění UNMASK u sloupce
Následující příklad uděluje UNMASK oprávnění, část dynamického maskování dat, pro sloupec email v tabulce Data.Membership uživatele OutreachCoordinator.
Dynamické maskování dat se v současné době v Microsoft Fabric nepodporuje.
GRANT UNMASK ON OBJECT::Data.Membership (email) to OutreachCoordinator;
GO
Související obsah
- Odepřít oprávnění objektu (Transact-SQL)
- Oprávnění k objektu REVOKE (Transact-SQL)
- zobrazení katalogu objektů (Transact-SQL)
- Oprávnění (databázový stroj)
- Hlavní subjekty (databázový stroj)
- Securables
- sys.fn_vestavěná_oprávnění (Transact-SQL)
- HAS_PERMS_BY_NAME (Transact-SQL)
- sys.fn_my_permissions (Transact-SQL)
- Dynamické maskování dat
- Row-Level bezpečnost