Uprawnienia: UDZIELANIE, ODMÓW, ODWOŁYWANIE

Dotyczy:Azure Synapse Analytics AnalyticsPlatform System (PDW)PUNKT końcowy SQL w usłudze Microsoft FabricWarehouse w usłudze Microsoft Fabric

Użyj instrukcji GRANT i DENY , aby udzielić lub odmówić uprawnień (takich jak UPDATE) w zabezpieczanej (na przykład bazy danych, tabeli, widoku itp.) do podmiotu zabezpieczeń (identyfikator logowania, użytkownika bazy danych lub roli bazy danych). Użyj funkcji REVOKE , aby usunąć udzielenie lub odmowę uprawnienia.

Uprawnienia na poziomie serwera są stosowane do logowań. Uprawnienia na poziomie bazy danych są stosowane do użytkowników bazy danych i ról bazy danych.

Aby sprawdzić, jakie uprawnienia zostały przyznane i odrzucone, wykonaj zapytanie dotyczące widoków sys.server_permissions i sys.database_permissions. Uprawnienia, które nie są jawnie przyznawane lub odrzucane podmiotowi zabezpieczeń, mogą być dziedziczone przez członkostwo w roli, która ma uprawnienia. Nie można zmienić uprawnień stałych ról bazy danych i nie są wyświetlane w widokach sys.server_permissions i sys.database_permissions.

  • GRANT jawnie przyznaje co najmniej jedno uprawnienie.

  • Odmowa jawnie odmawia podmiotowi zabezpieczeń posiadania co najmniej jednego uprawnienia.

  • FUNKCJA REVOKE usuwa istniejące uprawnienia GRANT lub DENY .

Konwencje składni języka Transact-SQL

Składnia

-- 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

<uprawnienie>[ ,... n ]
Co najmniej jedno uprawnienie do udzielania, odmowy lub odwołowywania.

ON [ <class_type> :: ] zabezpieczana klauzula ON opisuje zabezpieczany parametr, na którym można udzielić, odmówić lub odwołać uprawnień.

<> class_type Typ klasy zabezpieczanej. Może to być IDENTYFIKATOR LOGIN, DATABASE, OBJECT, SCHEMA, ROLE lub USER. Uprawnienia można również przyznać serwerowi class_type, ale serwer nie jest określony dla tych uprawnień. BAZA DANYCH nie jest określona, gdy uprawnienie zawiera słowo DATABASE (na przykład ALTER ANY DATABASE). Jeśli nie określono class_type i typ uprawnień nie jest ograniczony do klasy serwera lub bazy danych, przyjmuje się, że klasa jest obiektem.

Zabezpieczany
Nazwa logowania, bazy danych, tabeli, widoku, schematu, procedury, roli lub użytkownika, na którym można udzielić, odmówić lub odwołać uprawnienia. Nazwę obiektu można określić za pomocą trzech części reguł nazewnictwa opisanych w konwencjach składni języka Transact-SQL.

DO podmiotu zabezpieczeń [ ,... n ]
Co najmniej jeden podmiot zabezpieczeń, któremu udzielono, odmówiono lub odwołano uprawnienia. Podmiot zabezpieczeń to nazwa logowania, użytkownika bazy danych lub roli bazy danych.

FROM principal [ ,... n ]
Co najmniej jeden podmiot zabezpieczeń, z którego mają zostać odwołane uprawnienia. Podmiot zabezpieczeń to nazwa logowania, użytkownika bazy danych lub roli bazy danych. FUNKCJI FROM można używać tylko z instrukcją REVOKE . To może być używane z GRANT, DENY lub REVOKE.

Z OPCJĄ UDZIELANIA
Wskazuje, że dotacja będzie również mieć możliwość udzielenia określonego uprawnienia do innych podmiotów zabezpieczeń.

KASKADOWO
Wskazuje, że uprawnienie jest odrzucane lub odwoływane do określonego podmiotu zabezpieczeń oraz do wszystkich innych podmiotów zabezpieczeń, do których podmiot zabezpieczeń udzielił uprawnienia. Wymagane, gdy podmiot zabezpieczeń ma uprawnienie z OPCJĄ UDZIELANIA.

OPCJA UDZIELANIA DLA
Wskazuje, że możliwość udzielenia określonego uprawnienia zostanie odwołana. Jest to wymagane, gdy używasz argumentu CASCADE .

Ważne

Jeśli podmiot zabezpieczeń ma określone uprawnienie bez opcji GRANT , samo uprawnienie zostanie odwołane.

Uprawnienia

Aby przyznać uprawnienie, grantor musi mieć uprawnienie z OPCJą Z UDZIELANIEM lub musi mieć większe uprawnienie, które oznacza przyznanie uprawnień. Właściciele obiektów mogą udzielać uprawnień do obiektów, których są właścicielami. Podmioty z uprawnieniami CONTROL do zabezpieczania mogą udzielić uprawnień do tego zabezpieczanego. Członkowie db_owner i db_securityadmin stałych ról bazy danych mogą udzielić jakichkolwiek uprawnień w bazie danych.

Uwagi ogólne

Odmowa lub odwoływania uprawnień do podmiotu zabezpieczeń nie wpłynie na żądania, które przeszły autoryzację i są obecnie uruchomione. Aby natychmiast ograniczyć dostęp, musisz anulować aktywne żądania lub zabić bieżące sesje.

Uwaga

Większość stałych ról serwera nie jest dostępna w tej wersji. Zamiast tego należy użyć ról bazy danych zdefiniowanych przez użytkownika. Nie można dodać identyfikatorów logowania do stałej roli serwera sysadmin . Przyznanie uprawnienia CONTROL SERVER przybliżone członkostwo w stałej roli serwera sysadmin .

Niektóre instrukcje wymagają wielu uprawnień. Na przykład utworzenie tabeli wymaga uprawnień CREATE TABLE w bazie danych oraz uprawnienia ALTER SCHEMA dla tabeli zawierającej tabelę.

System platformy analizy (PDW) czasami wykonuje procedury składowane w celu dystrybuowania akcji użytkownika do węzłów obliczeniowych. W związku z tym nie można odmówić uprawnień wykonywania dla całej bazy danych. (Na przykład DENY EXECUTE ON DATABASE::<name> TO <user>; zakończy się niepowodzeniem). W miarę pracy odmów uprawnienia wykonywania do schematów użytkownika lub określonych obiektów (procedur).

W usłudze Microsoft Fabric obecnie nie można jawnie wykonać polecenia CREATE USER. Po wykonaniu funkcji GRANT lub DENY użytkownik zostanie utworzony automatycznie.

W usłudze Microsoft Fabric uprawnienia na poziomie serwera nie są możliwe do zarządzania.

Uprawnienia niejawne i jawne

Jawne uprawnienie to uprawnienie GRANT lub DENY przyznane podmiotowi zabezpieczeń przez instrukcję GRANT lub DENY.

Niejawne uprawnienie to uprawnienie GRANT lub DENY, które podmiot zabezpieczeń (identyfikator logowania, użytkownik lub rola bazy danych) dziedziczył z innej roli bazy danych.

Niejawne uprawnienie można również dziedziczyć z uprawnienia obejmującego lub nadrzędnego. Na przykład uprawnienie UPDATE w tabeli można dziedziczyć, mając uprawnienie UPDATE w schemacie zawierającym tabelę lub uprawnienie CONTROL w tabeli.

Łączenie własności

Gdy wiele obiektów bazy danych uzyskuje dostęp do siebie sekwencyjnie, sekwencja jest nazywana łańcuchem. Chociaż takie łańcuchy nie istnieją niezależnie, gdy SQL Server przechodzi przez łącza w łańcuchu, SQL Server ocenia uprawnienia do obiektów składowych inaczej niż gdyby uzyskiwał dostęp do obiektów oddzielnie. Łańcuch własności ma ważne konsekwencje związane z zarządzaniem zabezpieczeniami. Aby uzyskać więcej informacji na temat łańcuchów własności, zobacz Ownership Chains and Tutorial: Ownership Chains and Context Switching (Łańcuchy własności i przełączanie kontekstu).

Lista uprawnień

Uprawnienia na poziomie serwera

Uprawnienia na poziomie serwera można przyznać, odmówić i odwołać z identyfikatorów logowania.

Uprawnienia stosowane do serwerów

  • SERWER STEROWANIA

  • ADMINISTROWANIE OPERACJAMI ZBIORCZYM

  • ZMIENIANIE DOWOLNEGO POŁĄCZENIA

  • ZMIENIANIE DOWOLNEJ BAZY DANYCH

  • TWORZENIE DOWOLNEJ BAZY DANYCH

  • ZMIENIANIE DOWOLNEGO ZEWNĘTRZNEGO ŹRÓDŁA DANYCH

  • ZMIENIANIE DOWOLNEGO FORMATU PLIKU ZEWNĘTRZNEGO

  • ZMIENIANIE DOWOLNEGO IDENTYFIKATORA LOGOWANIA

  • ALTER SERVER STATE

  • ŁĄCZENIE BAZY DANYCH SQL

  • WYŚWIETL DOWOLNĄ DEFINICJĘ

  • WYŚWIETLANIE DOWOLNEJ BAZY DANYCH

  • WYŚWIETLANIE STANU SERWERA

Uprawnienia, które mają zastosowanie do identyfikatorów logowania

  • KONTROLA PRZY LOGOWANIU

  • ALTER ON LOGIN

  • PERSONIFIKUJ PRZY LOGOWANIU

  • DEFINICJA WIDOKU

Uprawnienia na poziomie bazy danych

Uprawnienia na poziomie bazy danych można przyznać, odmówić i odwołać od użytkowników bazy danych i ról bazy danych zdefiniowanych przez użytkownika.

Uprawnienia, które mają zastosowanie do wszystkich klas baz danych

  • KONTROLI

  • ALTER

  • DEFINICJA WIDOKU

Uprawnienia stosowane do wszystkich klas baz danych z wyjątkiem użytkowników

  • PRZEJĘCIE WŁASNOŚCI

Uprawnienia, które mają zastosowanie tylko do baz danych

  • ZMIENIANIE DOWOLNEJ BAZY DANYCH

  • ALTER ON DATABASE

  • ALTER ANY DATASPACE

  • ZMIENIANIE DOWOLNEJ ROLI

  • ZMIENIANIE DOWOLNEGO SCHEMATU

  • ZMIENIANIE DOWOLNEGO UŻYTKOWNIKA

  • KOPIA ZAPASOWA BAZY DANYCH

  • NAWIĄZYWANIE POŁĄCZENIA W BAZIE DANYCH

  • TWORZENIE PROCEDURY

  • TWORZENIE ROLI

  • TWORZENIE SCHEMATU

  • CREATE TABLE

  • CREATE VIEW

  • SHOWPLAN

Uprawnienia, które mają zastosowanie tylko do użytkowników

  • PERSONIFIKOWAĆ

Uprawnienia dotyczące baz danych, schematów i obiektów

  • ALTER

  • DELETE

  • WYKONAĆ

  • INSERT

  • SELECT

  • UPDATE

  • DOKUMENTACJA

Aby uzyskać definicję poszczególnych typów uprawnień, zobacz Uprawnienia (aparat bazy danych).

Wykres uprawnień

Wszystkie uprawnienia są graficznie reprezentowane na tym plakatie. Jest to najprostszy sposób wyświetlania zagnieżdżonej hierarchii uprawnień. Na przykład uprawnienie ALTER ON LOGIN może zostać przyznane samodzielnie, ale jest również uwzględniane, jeśli podczas logowania udzielono uprawnienia CONTROL dla tego identyfikatora logowania lub jeśli identyfikator logowania zostanie udzielony uprawnienie ALTER ANY LOGIN .

Plakat APS security permissions (Uprawnienia zabezpieczeń usługi APS) plakat APS

Uprawnienia domyślne

Na poniższej liście opisano uprawnienia domyślne:

  • Po utworzeniu logowania przy użyciu instrukcji CREATE LOGIN nowa nazwa logowania otrzymuje uprawnienie CONNECT SQL .

  • Wszystkie identyfikatory logowania są członkami roli serwera publicznego i nie można ich usunąć z publicznej wersji.

  • Gdy użytkownik bazy danych jest tworzony przy użyciu uprawnienia CREATE USER , użytkownik bazy danych otrzymuje uprawnienie CONNECT w bazie danych.

  • Wszystkie podmioty zabezpieczeń, w tym rola publiczna , domyślnie nie mają jawnych ani niejawnych uprawnień.

  • Gdy identyfikator logowania lub użytkownik staje się właścicielem bazy danych lub obiektu, nazwa logowania lub użytkownik zawsze ma wszystkie uprawnienia do bazy danych lub obiektu. Nie można zmienić uprawnień własności i nie są widoczne jako jawne uprawnienia. Instrukcje GRANT, DENY i REVOKE nie mają wpływu na właścicieli.

  • Identyfikator logowania sa ma wszystkie uprawnienia na urządzeniu. Podobnie jak uprawnienia własności, nie można zmienić uprawnień sa i nie są widoczne jako jawne uprawnienia. Instrukcje GRANT, DENY i REVOKE nie mają wpływu na identyfikator logowania sa . Nie można zmienić nazwy logowania sa .

  • Instrukcja USE nie wymaga uprawnień. Wszystkie podmioty zabezpieczeń mogą uruchamiać instrukcję USE w dowolnej bazie danych.

Przykłady: Azure Synapse Analytics and Analytics Platform System (PDW)

A. Udzielanie uprawnień na poziomie serwera do logowania

Poniższe dwie instrukcje udzielają uprawnień na poziomie serwera do logowania.

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

B. Udzielanie uprawnień na poziomie serwera do logowania

W poniższym przykładzie udzielono uprawnień na poziomie serwera podczas logowania do jednostki serwera (innego identyfikatora logowania).

GRANT  VIEW DEFINITION ON LOGIN::Ted TO Mary;  

C. Udzielanie użytkownikowi uprawnień na poziomie bazy danych

Poniższy przykład przyznaje użytkownikowi uprawnienia na poziomie bazy danych do jednostki bazy danych (innego użytkownika).

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

D. Udzielanie, odmawianie i odwołowanie uprawnienia schematu

Poniższa instrukcja GRANT przyznaje Yuen możliwość wybierania danych z dowolnej tabeli lub widoku w schemacie dbo.

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

Poniższa instrukcja DENY uniemożliwia yuenowi wybieranie danych z dowolnej tabeli lub widoku w schemacie dbo. Yuen nie może odczytać danych, nawet jeśli ma uprawnienia w inny sposób, na przykład za pośrednictwem członkostwa w roli.

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

Poniższa instrukcja REVOKE usuwa uprawnienie DENY . Teraz jawne uprawnienia Yuena są neutralne. Yuen może być w stanie wybrać dane z dowolnej tabeli za pośrednictwem innych niejawnych uprawnień, takich jak członkostwo w roli.

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

E. Demonstrowanie opcjonalnej klauzuli OBJECT::

Ponieważ OBJECT jest domyślną klasą instrukcji uprawnień, następujące dwie instrukcje są takie same. Klauzula OBJECT:: jest opcjonalna.

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