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í ke schématu.
Syntax
GRANT permission [ ,...n ] ON SCHEMA :: schema_name
TO database_principal [ ,...n ]
[ WITH GRANT OPTION ]
[ AS granting_principal ]
Arguments
permission
Určuje oprávnění, které lze udělit ve schématu. Seznamoprávněních
ZAPNUTÉ SCHEMA::schema_name
Určuje schéma, pro které se oprávnění uděluje. Kvalifikátor oboru :: je povinný.
database_principal
Určuje objekt zabezpečení, ke kterému se oprávnění uděluje. Jedna z následujících možností:
- Uživatel databáze
- Role v databázi
- aplikační role
- uživatel databáze namapovaný na přihlášení k Systému Windows
- uživatel databáze namapovaný na skupinu Windows
- uživatel databáze namapovaný na certifikát
- uživatel databáze namapovaný na asymetrický klíč
- uživatel databáze není namapován na objekt zabezpečení serveru.
GRANT OPCE
Označuje, že objekt zabezpečení bude mít také možnost udělit zadané oprávnění jiným objektům zabezpečení.
JAKO granting_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í. Jedna z následujících možností:
- Uživatel databáze
- Role v databázi
- aplikační role
- uživatel databáze namapovaný na přihlášení k Systému Windows
- uživatel databáze namapovaný na skupinu Windows
- uživatel databáze namapovaný na certifikát
- uživatel databáze namapovaný na asymetrický klíč
- uživatel databáze není namapován na objekt zabezpečení 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.
Schéma je zabezpečitelná databáze obsažená v databázi, která je jejím nadřazeným objektem v hierarchii oprávnění. Níže jsou uvedena nejvýraznější a omezená oprávnění, která lze udělit pro schéma, společně s obecnějšími oprávněními, která je zahrnují implikací.
| Povolení schématu | Implicitní oprávnění schématu | Implicitní oprávnění databáze |
|---|---|---|
| ALTER | CONTROL | Změnit libovolný SCHEMA |
| CONTROL | CONTROL | CONTROL |
| CREATE SEQUENCE | ALTER | Změnit libovolný SCHEMA |
| DELETE | CONTROL | DELETE |
| EXECUTE | CONTROL | EXECUTE |
| INSERT | CONTROL | INSERT |
| REFERENCES | CONTROL | REFERENCES |
| SELECT | CONTROL | SELECT |
| PŘEVEZMĚTE ODPOVĚDNOST | CONTROL | CONTROL |
| UPDATE | CONTROL | UPDATE |
| VIEW SLEDOVÁNÍ ZMĚN | CONTROL | CONTROL |
| VIEW DEFINICE | CONTROL | VIEW DEFINICE |
Caution
Uživatel s oprávněním ALTER ve schématu může použít řetězení vlastnictví pro přístup k zabezpečitelným v jiných schématech, včetně zabezpečitelných, ke kterým je tento uživatel explicitně odepřen. Důvodem je to, že řetězení vlastnictví obchází kontroly oprávnění u odkazovaných objektů, když jsou vlastníkem objektu zabezpečení, který je vlastníkem objektů, které na ně odkazují. Uživatel s oprávněním ALTER pro schéma může vytvářet procedury, synonyma a zobrazení, které vlastní vlastník schématu. Tyto objekty budou mít přístup (prostřednictvím řetězení vlastnictví) k informacím v jiných schématech vlastněných vlastníkem schématu. Pokud je to možné, měli byste se vyhnout udělení oprávnění ALTER schématu, pokud vlastník schématu vlastní také jiná schémata.
K tomuto problému může dojít například v následujících scénářích. Tyto scénáře předpokládají, že uživatel, označovaný jako U1, má oprávnění ALTER ke schématu S1. Uživateli U1 byl odepřen přístup k objektu tabulky, který se označuje jako T1 ve schématu S2. Schéma S1 a schéma S2 vlastní stejný vlastník.
Uživatel U1 má oprávnění CREATE PROCEDURE k databázi a k EXECUTE na schématu S1. Uživatel U1 proto může vytvořit uloženou proceduru a pak přistupovat k odepřeného objektu T1 v uložené proceduře.
Uživatel U1 má oprávnění CREATE SYNONYM k databázi a k SELECT schématu S1. Proto uživatel U1 může vytvořit synonymum ve schématu S1 pro odepřený objekt T1 a pak přistupovat k odepřeného objektu T1 pomocí synonyma.
Uživatel U1 má oprávnění CREATE VIEW k databázi a k SELECT schématu S1. Uživatel U1 proto může vytvořit zobrazení ve schématu S1 pro dotazování dat z odepřeného objektu T1 a pak pomocí zobrazení získat přístup k objektu odepření T1.
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í tyto 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í s oprávněním CONTROL u zabezpečitelné 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. 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. 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
A. Udělení INSERT povolení ke schématu HumanResources hostům
GRANT INSERT ON SCHEMA :: HumanResources TO guest;
B. Udělení oprávnění SELECT pro uživatele databáze WilJo pro uživatele schématu
GRANT SELECT ON SCHEMA :: Person TO WilJo WITH GRANT OPTION;
Viz také
DENY Povolení schématu (Transact-SQL)
REVOKE Povolení schématu (Transact-SQL)
GRANT (Transact-SQL)
Oprávnění (databázový stroj)
Hlavní subjekty (databázový stroj)
CREATE CERTIFICATE (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
CREATE APPLICATION ROLE (Transact-SQL)
Hierarchie šifrování
sys.fn_vestavěná_oprávnění (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)