Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Przyznaje uprawnienia zabezpieczane podmiotowi zabezpieczeń. Ogólną koncepcją jest GRANT <some permission> ON <some object> TO <some user, login, or group>. Aby zapoznać się z ogólnym omówieniem uprawnień, zobacz Uprawnienia (aparat bazy danych).
Transact-SQL konwencje składni
Syntax
Składnia dla programu SQL Server, usługi Azure SQL Database i bazy danych SQL Fabric.
-- Simplified syntax for GRANT
GRANT { ALL [ PRIVILEGES ] }
| permission [ ( column [ , ...n ] ) ] [ , ...n ]
[ ON [ class :: ] securable ] TO principal [ , ...n ]
[ WITH GRANT OPTION ] [ AS principal ]
Składnia dla usług Azure Synapse Analytics, Parallel Data Warehouse i Microsoft Fabric Warehouse.
GRANT
<permission> [ , ...n ]
[ ON [ <class_type> :: ] securable ]
TO principal [ , ...n ]
[ WITH GRANT OPTION ]
[;]
<permission> ::=
{ see the tables below }
<class_type> ::=
{
LOGIN
| DATABASE
| OBJECT
| ROLE
| SCHEMA
| USER
}
Arguments
ALL
Ta opcja jest przestarzała i jest obsługiwana tylko w przypadku zgodności z poprzednimi wersjami. Nie udziela wszystkich możliwych uprawnień. Udzielanie ALL jest równoważne z przyznaniem następujących uprawnień.
| Securable | Permissions |
|---|---|
| Database |
BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLEi CREATE VIEW |
| Funkcja skalarna |
EXECUTE i REFERENCES |
| Funkcja tabelowa |
DELETE, INSERT, REFERENCES, SELECTi UPDATE |
| procedura składowana | EXECUTE |
| Table |
DELETE, INSERT, REFERENCES, SELECTi UPDATE |
| View |
DELETE, INSERT, REFERENCES, SELECTi UPDATE |
PRIVILEGES
Uwzględniane pod kątem zgodności z normą ISO. Nie zmienia zachowania ALL.
permission
Nazwa uprawnienia. Prawidłowe mapowania uprawnień do zabezpieczanych elementów opisano w poniższych sekcjach.
column
Określa nazwę kolumny w tabeli, na której są przyznawane uprawnienia. Nawiasy ( i ) są wymagane.
class
Określa klasę zabezpieczaną, na której jest udzielane uprawnienie. Wymagany jest :: kwalifikatora zakresu.
securable
Określa zabezpieczanie, na którym udzielono uprawnień.
TO dyrektor
Nazwa podmiotu zabezpieczeń. Podmioty zabezpieczeń, którym można przyznać uprawnienia do zabezpieczania, różnią się w zależności od zabezpieczanego. Zapoznaj się z poniższymi sekcjami, aby zapoznać się z prawidłowymi kombinacjami.
OPCJA PRZYDZIAŁU
Wskazuje, że grante będzie również mieć możliwość udzielenia określonego uprawnienia innym podmiotom zabezpieczeń.
AS dyrektor
Użyj klauzuli AS <principal>, aby wskazać, że podmiot zabezpieczeń zarejestrowany jako podmiot przyznający uprawnienie powinien być podmiotem zabezpieczeń innym niż osoba wykonująca instrukcję. Załóżmy na przykład, że Mary użytkownika ma principal_id12, a Raul użytkownika jest podmiotem zabezpieczeń 15. Mary wykonuje GRANT SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; Teraz tabela sys.database_permissions wskazuje, że grantor_principal_id została 15 (Raul), mimo że instrukcja została rzeczywiście wykonana przez użytkownika 12 (Mary).
Używanie klauzuli AS zwykle nie jest zalecane, chyba że trzeba jawnie zdefiniować łańcuch uprawnień. Aby uzyskać więcej informacji, zobacz Podsumowanie algorytmu sprawdzania uprawnień.
Użycie AS w tej instrukcji nie oznacza możliwości personifikacji innego użytkownika.
Remarks
Pełna składnia instrukcji GRANT jest złożona. Poprzedni diagram składni został uproszczony, aby zwrócić uwagę na jego strukturę. Pełna składnia udzielania uprawnień do określonych zabezpieczania jest opisana w artykułach wymienionych w dalszej części tego artykułu.
Instrukcję REVOKE można użyć do usunięcia przyznanych uprawnień, a instrukcja DENY może służyć do zapobiegania uzyskaniu przez podmiot zabezpieczeń określonego uprawnienia za pośrednictwem GRANT.
Przyznanie uprawnienia usuwa DENY lub REVOKE tego uprawnienia w określonym zabezpieczaniu. Jeśli to samo uprawnienie zostanie odrzucone w wyższym zakresie, który zawiera zabezpieczane, DENY ma pierwszeństwo. Jednak cofnięcie przyznanego uprawnienia w wyższym zakresie nie ma pierwszeństwa.
Uprawnienia na poziomie bazy danych są przyznawane w zakresie określonej bazy danych. Jeśli użytkownik potrzebuje uprawnień do obiektów w innej bazie danych, utwórz konto użytkownika w innej bazie danych lub przyznaj kontu użytkownika dostęp do innej bazy danych, a także bieżącej bazy danych.
Caution
DENY na poziomie tabeli nie ma pierwszeństwa przed GRANTna poziomie kolumny. Ta niespójność w hierarchii uprawnień została zachowana ze względu na zgodność z poprzednimi wersjami. Zostanie on usunięty w przyszłej wersji.
Procedura składowana systemu sp_helprotect zgłasza uprawnienia do zabezpieczania na poziomie bazy danych.
W usłudze Microsoft Fabric nie można obecnie jawnie wykonywać CREATE USER. Po wykonaniu GRANT lub DENY użytkownik jest tworzony automatycznie.
Z OPCJĄ UDZIELANIA
GRANT ... WITH GRANT OPTION określa, że podmiot zabezpieczeń odbierający uprawnienie ma możliwość udzielenia określonego uprawnienia innym kontom zabezpieczeń. Gdy podmiot zabezpieczeń, który otrzymuje uprawnienie, jest rolą lub grupą systemu Windows, należy użyć klauzuli AS, gdy uprawnienie obiektu musi być dodatkowo przyznane użytkownikom, którzy nie są członkami grupy lub roli. Ponieważ tylko użytkownik, a nie grupa lub rola, może wykonać instrukcję GRANT, określony członek grupy lub roli musi użyć klauzuli AS, aby jawnie wywołać rolę lub członkostwo w grupie podczas udzielania uprawnień. W poniższym przykładzie pokazano, jak WITH GRANT OPTION jest używana w przypadku udzielenia roli lub grupy systemu Windows.
-- Execute the following as a database owner
GRANT EXECUTE ON TestProc TO TesterRole WITH GRANT OPTION;
EXEC sp_addrolemember TesterRole, User1;
-- Execute the following as User1
-- The following fails because User1 does not have the permission as the User1
GRANT EXECUTE ON TestProc TO User2;
-- The following succeeds because User1 invokes the TesterRole membership
GRANT EXECUTE ON TestProc TO User2 AS TesterRole;
Wykres uprawnień programu SQL Server
Aby uzyskać wykres rozmiaru plakatu wszystkich uprawnień aparatu bazy danych w formacie PDF, zobacz https://aka.ms/sql-permissions-poster.
Permissions
Grantor (lub podmiot zabezpieczeń określony z opcją AS) musi mieć uprawnienie do GRANT OPTIONlub wyższe uprawnienie, które oznacza przyznanie uprawnienia. W przypadku korzystania z opcji AS mają zastosowanie dodatkowe wymagania. Aby uzyskać szczegółowe informacje, zobacz artykuł dotyczący zabezpieczania.
Właściciele obiektów mogą udzielać uprawnień do obiektów, których są właścicielami. Podmioty z CONTROL uprawnienia do zabezpieczania mogą udzielać uprawnień do tego zabezpieczanego.
Udziel uprawnień CONTROL SERVER, takich jak członkowie sysadmin stałej roli serwera, mogą przyznać wszelkie uprawnienia do zabezpieczania na serwerze. Grantees CONTROL uprawnienia do bazy danych, takich jak członkowie db_owner stałej roli bazy danych, mogą udzielić wszelkich uprawnień do zabezpieczania w bazie danych. Grantees CONTROL uprawnienia do schematu mogą przyznać dowolne uprawnienie do dowolnego obiektu w schemacie.
Examples
W poniższej tabeli wymieniono zabezpieczane elementy i artykuły, które opisują zabezpieczaną składnię.