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
VE SCHÉMATU ::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.
MOŽNOST GRANTU
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 JAKÉKOLIV SCHÉMA |
| CONTROL | CONTROL | CONTROL |
| VYTVOŘIT SEKVENCI | ALTER | ZMĚNIT JAKÉKOLIV SCHÉMA |
| 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 |
| ZOBRAZIT SLEDOVÁNÍ ZMĚN | CONTROL | CONTROL |
| ZOBRAZIT DEFINICI | CONTROL | ZOBRAZIT DEFINICI |
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 pro databázi a oprávnění EXECUTE pro schéma 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á pro databázi oprávnění CREATE SYNONYM a oprávnění SELECT pro schéma 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 oprávnění SELECT pro schéma 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
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í 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í oprávnění INSERT pro schéma HumanResources hostu
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é
Odepřít oprávnění schématu (Transact-SQL)
Oprávnění ke schématu REVOKE (Transact-SQL)
GRANT (Transact-SQL)
Oprávnění (databázový stroj)
Hlavní subjekty (databázový stroj)
VYTVOŘIT CERTIFIKÁT (Transact-SQL)
VYTVOŘIT ASYMETRICKÝ KLÍČ (Transact-SQL)
VYTVOŘENÍ APLIKAČNÍ ROLE (Transact-SQL)
Hierarchie šifrování
sys.fn_builtin_permissions (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)