Uprawnienia: GRANT, DENY, REVOKE
Dotyczy:Azure Synapse AnalyticsAnalytics Platform System (PDW)punkt końcowy analizy 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 bazie danych (takiej jak baza danych, tabela, widok itp.) do podmiotu zabezpieczeń (identyfikator logowania, użytkownika bazy danych lub roli bazy danych). Użyj ODWOŁAJ, aby usunąć przyznanie lub odmowę uprawnienia.
Uprawnienia na poziomie serwera są stosowane do identyfikatorów logowania. Uprawnienia na poziomie bazy danych są stosowane do użytkowników bazy danych i ról bazy danych.
Aby zobaczyć, 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 odrzuca podmiot zabezpieczeń z co najmniej jednego uprawnienia.
ODWOŁAJ usuwa istniejące uprawnienia GRANTGRANT lub DENY .
Transact-SQL konwencje składni
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
<uprawnienia>[ ,...n ]
Co najmniej jedno uprawnienie do udzielania, odmowy lub odwołowywania.
ON [ <class_type> :: ] zabezpieczane Klauzula ON opisuje zabezpieczany parametr, na którym można udzielić, odmówić lub odwołać uprawnienia.
<class_type> Typ klasy zabezpieczanej. Może to być LOGIN, DATABASE, OBJECT, SCHEMA, ROLElub USER. Uprawnienia można również przyznać
zabezpieczane
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, które są opisane w Transact-SQL konwencji składni.
ABY podmiot 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.
FROM można używać tylko z instrukcją REVOKE.
TO można używać z GRANT, DENYlub REVOKE.
Z OPCJĄ UDZIELANIA
Wskazuje, że grante będzie również mieć możliwość udzielenia określonego uprawnienia innym podmiotom zabezpieczeń.
KASKADA
Wskazuje, że uprawnienie zostało odrzucone lub odwołane do określonego podmiotu zabezpieczeń oraz do wszystkich innych podmiotów zabezpieczeń, do których podmiot zabezpieczeń przyznał uprawnienie. Wymagane, gdy podmiot zabezpieczeń ma uprawnienie GRANT OPTION.
OPCJA UDZIELENIA DLA
Wskazuje, że możliwość udzielenia określonego uprawnienia zostanie odwołana. Jest to wymagane, gdy używasz argumentu CASCADE.
Ważny
Jeśli podmiot zabezpieczeń ma określone uprawnienie bez opcji GRANT, samo uprawnienie zostanie odwołane.
Uprawnienia
Aby udzielić uprawnienia, grantor musi mieć uprawnienie do WITH GRANT OPTIONlub musi mieć większe uprawnienie, które oznacza przyznanie uprawnienia. Właściciele obiektów mogą udzielać uprawnień do obiektów, których są właścicielami. Podmioty z uprawnieniami CONTROL zabezpieczane mogą udzielać uprawnień do tego zabezpieczanego. Członkowie db_owner i db_securityadmin stałych ról bazy danych mogą przyznać dowolne uprawnienia w bazie danych.
Uwagi ogólne
Odmawianie lub odwoływania uprawnień do podmiotu zabezpieczeń nie będzie miało wpływu 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.
Nuta
Większość stałych ról serwera nie jest dostępna w tej wersji. Zamiast tego użyj ról bazy danych zdefiniowanych przez użytkownika. Nie można dodać identyfikatorów logowania do sysadmin stałej roli serwera. Przyznanie uprawnienia CONTROL SERVER przybliżone członkostwo w sysadmin stałej roli serwera.
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 dystrybucji akcji użytkownika do węzłów obliczeniowych. W związku z tym nie można odmówić uprawnienia do wykonywania 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 polecenia 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
Niejawne uprawnienia to GRANT lub odmów uprawnienia podmiotu zabezpieczeń (identyfikator logowania, użytkownika lub bazy danych) dziedziczone 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.
Łańcuch własności
Gdy wiele obiektów bazy danych uzyskuje dostęp do siebie sekwencyjnie, sekwencja jest nazywana łańcuchem . Mimo że takie łańcuchy nie istnieją niezależnie, gdy program SQL Server przechodzi przez łącza w łańcuchu, program SQL Server ocenia uprawnienia do obiektów składowych inaczej niż w przypadku oddzielnego uzyskiwania dostępu do obiektów. Ł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( Samouczek: ł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 dotyczące 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
NAWIĄZYWANIE POŁĄCZENIA Z BAZĄ DANYCH SQL
WYŚWIETL DOWOLNĄ DEFINICJĘ
WYŚWIETL DOWOLNĄ BAZĘ DANYCH
WYŚWIETLANIE STANU SERWERA
Uprawnienia dotyczące 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
KONTROLA
ZMIENIĆ
DEFINICJA WIDOKU
uprawnienia, które mają zastosowanie 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
ZMIENIANIE DOWOLNEJ PRZESTRZENI DANYCH
ZMIENIANIE DOWOLNEJ ROLI
ZMIENIANIE DOWOLNEGO SCHEMATU
ZMIENIANIE DOWOLNEGO UŻYTKOWNIKA
KOPIA ZAPASOWA BAZA DANYCH
NAWIĄZYWANIE POŁĄCZENIA W BAZIE DANYCH
TWORZENIE PROCEDURY
TWORZENIE ROLI
TWORZENIE SCHEMATU
CREATE TABLE
UTWÓRZ WIDOK
SHOWPLAN
Uprawnienia, które mają zastosowanie tylko do użytkowników
- PERSONIFIKOWAĆ
uprawnienia dotyczące baz danych, schematów i obiektów
ZMIENIĆ
USUNĄĆ
WYKONAĆ
WSTAWIAĆ
WYBRAĆ
AKTUALIZACJA
ODWOŁANIA
Aby uzyskać definicję każdego typu uprawnień, zobacz Uprawnienia (aparat bazy danych).
Uprawnienia domyślne
Poniższa lista zawiera opis uprawnień domyślnych:
Po utworzeniu logowania przy użyciu instrukcji CREATE LOGIN
CREATE LOGIN nowy identyfikator logowania otrzymuje uprawnienie CONNECT SQL .Wszystkie identyfikatory logowania są członkami publicznej roli serwera
i nie można ich usunąć z publicznej .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 publicznej, nie mają domyślnie 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. Oświadczenia GRANT, DENYi REVOKE oświadczenia nie mają wpływu na właścicieli.
Identyfikator logowania sa ma wszystkie uprawnienia na urządzeniu. Podobnie jak uprawnienia własności, uprawnienia sa nie można zmienić i nie są widoczne jako jawne uprawnienia. Instrukcje
GRANT ,DENY iREVOKE nie mają wpływu na logowanie 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
W poniższym przykładzie udzielono użytkownikowi uprawnień 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 platformie Yuen 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];
Następująca instrukcja
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];