Sdílet prostřednictvím


Oprávnění: GRANT, ODEPŘÍT, ODVOLAT

platí pro:koncový bodSQL AnalyticsAnalyticsAnalytics v Microsoft FabricWarehouse v Microsoft Fabric

Pomocí příkazů GRANT a ODEPŘÍT udělte nebo odepřete oprávnění (například UPDATE) k zabezpečitelnému objektu zabezpečení (jako je databáze, tabulka, zobrazení atd.) objektu zabezpečení (přihlášení, uživatel databáze nebo role databáze). Pomocí ODVOLAT odeberte udělení nebo zamítnutí oprávnění.

Oprávnění na úrovni serveru se použijí pro přihlášení. Oprávnění na úrovni databáze se použijí pro uživatele databáze a databázové role.

Pokud chcete zjistit, jaká oprávnění byla udělena a zamítnuta, zadejte dotaz na zobrazení sys.server_permissions a sys.database_permissions. Oprávnění, která nejsou explicitně udělena nebo odepřena objektu zabezpečení, mohou být zděděna členstvím v roli s oprávněními. Oprávnění pevných databázových rolí nelze změnit a nezobrazují se v zobrazeních sys.server_permissions a sys.database_permissions.

  • GRANT explicitně uděluje jedno nebo více oprávnění.

  • odepřít objektu zabezpečení explicitně odepře, aby měl jeden nebo více oprávnění.

  • ODVOLÁNÍ odebere stávající oprávnění GRANT nebo ODEPŘÍT.

Transact-SQL konvence syntaxe

Syntax

-- Azure Synapse Analytics and Parallel Data Warehouse and Microsoft Fabric
GRANT   
    <permission> [ ,...n ]  
    [ ON [ <class_type> :: ] securable ]   
    TO principal [ ,...n ]  
    [ WITH GRANT OPTION ]  
[;]  
  
DENY   
    <permission> [ ,...n ]  
    [ ON [ <class_type> :: ] securable ]   
    TO principal [ ,...n ]  
    [ CASCADE ]  
[;]  
  
REVOKE   
    <permission> [ ,...n ]  
    [ ON [ <class_type> :: ] securable ]   
    [ FROM | TO ] principal [ ,...n ]  
    [ CASCADE ]  
[;]  
  
<permission> ::=  
{ see the tables below }  
  
<class_type> ::=  
{  
      LOGIN  
    | DATABASE  
    | OBJECT  
    | ROLE  
    | SCHEMA  
    | USER  
}  

Argumenty

<oprávnění>[ ,...n ]
Jedno nebo více oprávnění k udělení, zamítnutí nebo odvolání přístupu.

ON [ <class_type> :: ] zabezpečitelné Klauzule ON popisuje zabezpečitelný parametr, pro který se mají udělit, odepřít nebo odvolat oprávnění.

<class_type> Typ třídy zabezpečitelné. Může to být PŘIHLÁŠENÍ, DATABÁZE, OBJEKT,schématu , rolenebouživatele . Oprávnění lze také udělitclass_typeSERVER, ale pro tato oprávnění není zadána SERVER. DATABASE není zadán, pokud oprávnění obsahuje slovo DATABASE (například ALTER ANY DATABASE). Pokud není zadán žádný class_type a typ oprávnění není omezen na server nebo třídu databáze, předpokládá se, že třída je OBJECT.

zabezpečitelné
Název přihlášení, databáze, tabulky, zobrazení, schématu, procedury, role nebo uživatele, u kterého chcete udělit, odepřít nebo odvolat oprávnění. Název objektu lze zadat pomocí třídílných pravidel pojmenování, která jsou popsána v Transact-SQL konvence syntaxe.

TO principal [ ,...n ]
Jeden nebo více objektů zabezpečení udělených, odepřených nebo odvolaných oprávnění. Objekt zabezpečení je název přihlašovací role, uživatele databáze nebo databáze.

instanční [ ,...n ]
Jeden nebo více objektů zabezpečení pro odvolání oprávnění. Objekt zabezpečení je název přihlašovací role, uživatele databáze nebo databáze. FROM lze použít pouze s příkazem REVOKE. lze použít s GRANT, ODEPŘÍTnebo ODVOLAT.

S MOŽNOSTÍ UDĚLENÍ
Označuje, že příjemce bude mít také možnost udělit zadané oprávnění jiným objektům zabezpečení.

KASKÁDA
Označuje, že oprávnění je odepřeno nebo odvoláno na zadaný objekt zabezpečení a na všechny ostatní objekty zabezpečení, ke kterým objekt zabezpečení udělil oprávnění. Vyžaduje se, pokud má objekt zabezpečení oprávnění s GRANT OPTION.

MOŽNOST UDĚLENÍ PRO
Označuje, že možnost udělit zadané oprávnění bude odvolána. To se vyžaduje při použití argumentu CASCADE.

Důležitý

Pokud má objekt zabezpečení zadané oprávnění bez možnosti UDĚLIT, oprávnění samotné se odvolá.

Dovolení

Chcete-li udělit oprávnění, musí mít grantor buď samotné oprávnění s WITH GRANT OPTION, nebo musí mít vyšší oprávnění, které znamená udělení oprávnění. 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. Členové db_owner a db_securityadmin pevných databázových rolí mohou udělit jakékoli oprávnění v databázi.

Obecné poznámky

Odepření nebo odvolání oprávnění k objektu zabezpečení neovlivní požadavky, které prošly autorizací a které jsou aktuálně spuštěné. Pokud chcete omezit přístup okamžitě, musíte zrušit aktivní žádosti nebo ukončit aktuální relace.

Poznámka

Většina pevných rolí serveru není v této verzi dostupná. Místo toho použijte uživatelsky definované databázové role. Přihlášení nelze přidat do správce systému pevné role serveru. Udělení oprávnění CONTROL SERVER se blíží členství v sysadmin pevné roli serveru.

Některé příkazy vyžadují více oprávnění. Chcete-li například vytvořit tabulku, vyžaduje oprávnění CREATE TABLE v databázi a oprávnění ALTER SCHEMA pro tabulku, která bude obsahovat tabulku.

Systém PDW (Analytics Platform System) někdy spouští uložené procedury, které distribuují akce uživatelů do výpočetních uzlů. Proto nelze odepřít oprávnění ke spuštění pro celou databázi. (Například DENY EXECUTE ON DATABASE::<name> TO <user>; selže.) Jako alternativní řešení zamítáte oprávnění ke spuštění uživatelským schématům nebo konkrétním objektům (procedurám).

V Microsoft Fabricu nelze v současné době explicitně spustit příkaz CREATE USER. Po spuštění grantu nebo zamítnutí se uživatel vytvoří automaticky.

V Microsoft Fabric nejsou oprávnění na úrovni serveru spravovatelná.

Implicitní a explicitní oprávnění

explicitní oprávnění je oprávnění GRANT nebo ODEPŘÍT udělené objektu zabezpečení GRANT nebo odepřít.

implicitní oprávnění je UDĚLIT nebo odepřít oprávnění, které objekt zabezpečení (přihlašovací jméno, uživatel nebo role databáze) zdědil z jiné databázové role.

Implicitní oprávnění lze také zdědit z krytí nebo nadřazeného oprávnění. Například oprávnění UPDATE v tabulce lze dědit tak, že má oprávnění UPDATE schématu, které obsahuje tabulku, nebo OPRÁVNĚNÍ CONTROL v tabulce.

Řetězení vlastnictví

Pokud se k sobě postupně přistupuje více databázových objektů, je posloupnost známá jako řetěz . I když tyto řetězy neexistují nezávisle, když SQL Server prochází propojeními v řetězu, SQL Server vyhodnotí oprávnění k základním objektům jinak, než kdyby k objektům přistupoval samostatně. Řetězení vlastnictví má důležité důsledky pro správu zabezpečení. Další informace o řetězech vlastnictví naleznete v tématu Řetězy vlastnictví a Kurz: Řetězy vlastnictví a kontextové přepínání.

Seznam oprávnění

Oprávnění na úrovni serveru

Oprávnění na úrovni serveru je možné udělit, odepřít a odvolat z přihlášení.

oprávnění , která platí pro servery

  • CONTROL SERVER

  • SPRÁVA HROMADNÝCH OPERACÍ

  • ALTER ANY CONNECTION

  • ALTER ANY DATABASE

  • VYTVOŘENÍ JAKÉKOLI DATABÁZE

  • ALTER ANY EXTERNAL DATA SOURCE

  • ALTER ANY EXTERNAL FILE FORMAT

  • ALTER ANY LOGIN

  • ALTER SERVER STATE

  • CONNECT SQL

  • ZOBRAZIT JAKOUKOLI DEFINICI

  • ZOBRAZIT LIBOVOLNOU DATABÁZI

  • ZOBRAZIT STAV SERVERU

oprávnění , která platí pro přihlášení

  • ŘÍZENÍ PŘI PŘIHLÁŠENÍ

  • ALTER ON LOGIN

  • ZOSOBNĚNÍ PŘI PŘIHLÁŠENÍ

  • ZOBRAZIT DEFINICI

Oprávnění na úrovni databáze

Oprávnění na úrovni databáze je možné udělit, odepřít a odvolat od uživatelů databáze a uživatelsky definovaných databázových rolí.

oprávnění , která platí pro všechny databázové třídy

  • ŘÍZENÍ

  • PROMĚNIT

  • ZOBRAZIT DEFINICI

Oprávnění, která platí pro všechny třídy databáze s výjimkou uživatelů

  • PŘEVZÍT VLASTNICTVÍ

oprávnění , která se vztahují pouze na databáze

  • ALTER ANY DATABASE

  • ALTER ON DATABASE

  • ALTER ANY DATASPACE

  • ALTER ANY ROLE

  • ALTER ANY SCHEMA

  • ALTER ANY USER

  • ZÁLOHOVAT DATABÁZI

  • PŘIPOJENÍ K DATABÁZI

  • CREATE PROCEDURE

  • VYTVOŘENÍ ROLE

  • VYTVOŘENÍ SCHÉMATU

  • CREATE TABLE

  • VYTVOŘIT ZOBRAZENÍ

  • SHOWPLAN

oprávnění , která platí jenom pro uživatele

  • ZOSOBŇOVAT

Oprávnění, která platí pro databáze, schémata a objekty

  • PROMĚNIT

  • VYMAZAT

  • PROVÉST

  • VLOŽIT

  • VYBRAT

  • AKTUALIZACE

  • ODKAZY

Definice každého typu oprávnění naleznete v tématu Oprávnění (databázový stroj).

Výchozí oprávnění

Následující seznam popisuje výchozí oprávnění:

  • Když se vytvoří přihlášení pomocí příkazu CREATE LOGIN, nové přihlášení obdrží oprávnění CONNECT SQL.

  • Všechna přihlášení jsou členy role serveru veřejné a nelze je odebrat z veřejné.

  • Když je uživatel databáze vytvořen pomocí oprávnění CREATE USER, uživatel databáze obdrží oprávnění CONNECT v databázi.

  • Všechny objekty zabezpečení, včetně role veřejné, nemají ve výchozím nastavení žádná explicitní ani implicitní oprávnění.

  • Když se přihlášení nebo uživatel stane vlastníkem databáze nebo objektu, má přihlášení nebo uživatel vždy všechna oprávnění k databázi nebo objektu. Oprávnění k vlastnictví nelze změnit a nejsou viditelná jako explicitní oprávnění. Příkazy GRANT, ODEPŘÍTa REVOKE nemají žádný vliv na vlastníky.

  • Přihlášení sa má na zařízení všechna oprávnění. Podobně jako u oprávnění k vlastnictví nelze změnit oprávnění sa a nejsou viditelná jako explicitní oprávnění. Příkazy GRANT, ODEPŘÍTa REVOKE nemají žádný vliv na přihlášení s a. Přihlášení sa nelze přejmenovat.

  • Příkaz USE nevyžaduje oprávnění. Všechny objekty zabezpečení můžou spustit příkaz USE pro libovolnou databázi.

Příklady: Azure Synapse Analytics a Analytický platformový systém (PDW)

A. Udělení oprávnění na úrovni serveru pro přihlášení

Následující dva příkazy udělují přihlašovacímu účtu oprávnění na úrovni serveru.

GRANT CONTROL SERVER TO [Ted];  
GRANT ALTER ANY DATABASE TO Mary;  

B. Udělení oprávnění na úrovni serveru pro přihlášení

Následující příklad uděluje oprávnění na úrovni serveru pro přihlášení k objektu zabezpečení serveru (jiné přihlášení).

GRANT  VIEW DEFINITION ON LOGIN::Ted TO Mary;  

C. Udělení oprávnění na úrovni databáze uživateli

Následující příklad uděluje uživateli oprávnění na úrovni databáze k instančnímu objektu (jinému uživateli).

GRANT VIEW DEFINITION ON USER::[Ted] TO Mary;  

D. Udělení, zamítnutí a odvolání oprávnění schématu

Následující příkazu GRANT uděluje Yuen možnost vybrat data z libovolné tabulky nebo zobrazení ve schématu dbo.

GRANT SELECT ON SCHEMA::dbo TO [Yuen];  

Následující příkaz ODEPŘÍT brání Yuenu v výběru dat z libovolné tabulky nebo zobrazení ve schématu dbo. Yuen nemůže číst data, i když má oprávnění jiným způsobem, například prostřednictvím členství v roli.

DENY SELECT ON SCHEMA::dbo TO [Yuen];  

Následující příkaz REVOKE odebere oprávnění ODEPŘÍT. Teď jsou explicitní oprávnění Yuen neutrální. Yuen může být schopen vybrat data z libovolné tabulky prostřednictvím jiného implicitního oprávnění, jako je členství v roli.

REVOKE SELECT ON SCHEMA::dbo TO [Yuen];  

E. Ukázka volitelné klauzule OBJECT::

Vzhledem k tomu, že OBJECT je výchozí třídou pro příkaz oprávnění, jsou následující dva příkazy stejné. Klauzule OBJECT:: je volitelná.

GRANT UPDATE ON OBJECT::dbo.StatusTable TO [Ted];  
GRANT UPDATE ON dbo.StatusTable TO [Ted];