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 do tabeli, widoku, funkcji wartości tabeli, procedury składowanej, rozszerzonej procedury składowanej, funkcji skalarnej, funkcji agregującej, kolejki usługi lub synonimu.
Transact-SQL konwencje składni
Syntax
GRANT <permission> [ ,...n ] ON
[ OBJECT :: ][ schema_name ]. object_name [ ( column_name [ ,...n ] ) ]
TO <database_principal> [ ,...n ]
[ WITH GRANT OPTION ]
[ AS <database_principal> ]
<permission> ::=
ALL [ PRIVILEGES ] | permission [ ( column_name [ ,...n ] ) ]
<database_principal> ::=
Database_user
| Database_role
| Application_role
| Database_user_mapped_to_Windows_User
| Database_user_mapped_to_Windows_Group
| Database_user_mapped_to_certificate
| Database_user_mapped_to_asymmetric_key
| Database_user_with_no_login
Arguments
permission
Określa uprawnienie, które można udzielić dla obiektu zawartego w schemacie. Aby uzyskać listę uprawnień, zobacz Uwagi.
ALL
Przyznanie all nie udziela wszystkich możliwych uprawnień. Przyznanie ALL jest równoważne przyznaniu wszystkich uprawnień ANSI-92 mających zastosowanie do określonego obiektu. Znaczenie ALL różni się w następujący sposób:
- Uprawnienia funkcji skalarnych: EXECUTE, REFERENCES.
- Uprawnienia funkcji wartości tabeli: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
- Uprawnienia procedury składowanej: EXECUTE.
- Uprawnienia do tabeli: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
- Wyświetlanie uprawnień: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
Caution
Uprawnienie ALL jest przestarzałe i obsługiwane tylko w celu zachowania zgodności.
PRIVILEGES
Dołączone do zgodności ANSI-92. Nie zmienia zachowania ALL.
column_name
Określa nazwę kolumny w tabeli, widoku lub funkcji wartości tabeli, na której jest przyznawane uprawnienie. Nawiasy ( ) są wymagane. Tylko uprawnienia SELECT, REFERENCES, UPDATE i UNMASK można przyznać w kolumnie. column_name można określić w klauzuli permissions lub po zabezpieczanej nazwie.
Caution
Odmowa na poziomie tabeli nie ma pierwszeństwa przed grantem na poziomie kolumny. Ta niespójność w hierarchii uprawnień została zachowana w celu zapewnienia zgodności z poprzednimi wersjami.
ON [ OBJECT:: ] [ schema_name ] . object_name
Określa obiekt, na którym udzielono uprawnień. Fraza OBJECT jest opcjonalna, jeśli określono schema_name . Jeśli jest używana fraza OBJECT, kwalifikator zakresu (::) jest wymagany. Jeśli schema_name nie zostanie określony, zostanie użyty schemat domyślny. Jeśli określono schema_name , wymagany jest kwalifikator zakresu schematu (.).
ABY <database_principal>
Określa podmiot zabezpieczeń, któremu udzielono uprawnień.
Z OPCJĄ UDZIELANIA
Wskazuje, że podmiot zabezpieczeń będzie również mieć możliwość udzielenia określonego uprawnienia innym podmiotom zabezpieczeń.
As <database_principal>
Określa podmiot zabezpieczeń, z którego podmiot zabezpieczeń wykonujący to zapytanie ma prawo przyznać uprawnienie.
Database_user
Określa użytkownika bazy danych.
Database_role
Określa rolę bazy danych.
Application_role
Określa rolę aplikacji.
Database_user_mapped_to_Windows_User
Określa użytkownika bazy danych zamapowanego na użytkownika systemu Windows.
Database_user_mapped_to_Windows_Group
Określa użytkownika bazy danych zamapowanego na grupę systemu Windows.
Database_user_mapped_to_certificate
Określa użytkownika bazy danych mapowanego na certyfikat.
Database_user_mapped_to_asymmetric_key
Określa użytkownika bazy danych mapowanego na klucz asymetryczny.
Database_user_with_no_login
Określa użytkownika bazy danych bez odpowiedniego podmiotu zabezpieczeń na poziomie serwera.
Remarks
Important
Kombinacja ALTER uprawnień i REFERENCE w niektórych przypadkach może umożliwić udzielonemu wyświetlanie danych lub wykonywanie nieautoryzowanych funkcji. Na przykład: użytkownik z ALTER uprawnieniami do tabeli i REFERENCE uprawnienia do funkcji może utworzyć obliczoną kolumnę za pośrednictwem funkcji i mieć ją wykonać. W takim przypadku użytkownik będzie również potrzebować SELECT uprawnień do obliczonej kolumny.
Informacje o obiektach są widoczne w różnych widokach wykazu. Aby uzyskać więcej informacji, zobacz Widoki wykazu obiektów (Transact-SQL).
Obiekt jest zabezpieczany na poziomie schematu zawarty w schemacie, który jest jego elementem nadrzędnym w hierarchii uprawnień. Najbardziej szczegółowe i ograniczone uprawnienia, które można udzielić dla obiektu, są wymienione w poniższej tabeli wraz z bardziej ogólnymi uprawnieniami, które obejmują je przez implikację.
| Pozwolenie na obiekt | Sugerowane przez uprawnienie obiektu | Dorozumiane przez uprawnienie schematu |
|---|---|---|
ALTER |
CONTROL |
ALTER |
CONTROL |
CONTROL |
CONTROL |
DELETE |
CONTROL |
DELETE |
EXECUTE |
CONTROL |
EXECUTE |
INSERT |
CONTROL |
INSERT |
RECEIVE |
CONTROL |
CONTROL |
REFERENCES |
CONTROL |
REFERENCES |
SELECT |
RECEIVE |
SELECT |
TAKE OWNERSHIP |
CONTROL |
CONTROL |
UPDATE |
CONTROL |
UPDATE |
VIEW CHANGE TRACKING |
CONTROL |
VIEW CHANGE TRACKING |
VIEW DEFINITION |
CONTROL |
VIEW DEFINITION |
Powiązanie schematu nie jest obsługiwane w usłudze Azure Synapse Analytics, co może prowadzić do nieoczekiwanego zachowania, gdy obiekty bazowe są modyfikowane, a uprawnienia zostały przyznane widokowi. Aby uzyskać więcej informacji, zobacz Widoki języka T-SQL z dedykowaną pulą SQL i bezserwerową pulą SQL w usłudze Azure Synapse Analytics.
Permissions
Podmiot udzielający (lub podmiot zabezpieczeń określony z opcją AS) musi mieć uprawnienie z GRANT OPTIONuprawnieniem lub wyższym uprawnieniem, które oznacza przyznanie uprawnienia.
Jeśli używasz opcji AS, obowiązują następujące dodatkowe wymagania.
| AS | Wymagane dodatkowe uprawnienia |
|---|---|
| Użytkownik bazy danych |
IMPERSONATE uprawnienie użytkownika, członkostwo w stałej db_securityadmin roli bazy danych, członkostwo w stałej db_owner roli bazy danych lub członkostwo w stałej sysadmin roli serwera. |
| Użytkownik bazy danych zamapowany na logowanie do systemu Windows |
IMPERSONATE uprawnienie użytkownika, członkostwo w stałej db_securityadmin roli bazy danych, członkostwo w stałej db_owner roli bazy danych lub członkostwo w stałej sysadmin roli serwera. |
| Użytkownik bazy danych zamapowany na grupę systemu Windows | Członkostwo w grupie systemu Windows, członkostwo w stałej db_securityadmin roli bazy danych, członkostwo w stałej db_owner roli bazy danych lub członkostwo w stałej sysadmin roli serwera. |
| Użytkownik bazy danych zamapowany na certyfikat | Członkostwo w stałej db_securityadmin roli bazy danych, członkostwo w stałej db_owner roli bazy danych lub członkostwo w stałej sysadmin roli serwera. |
| Użytkownik bazy danych zamapowany na klucz asymetryczny | Członkostwo w stałej db_securityadmin roli bazy danych, członkostwo w stałej db_owner roli bazy danych lub członkostwo w stałej sysadmin roli serwera. |
| Użytkownik bazy danych nie jest mapowany na żadną jednostkę serwera |
IMPERSONATE uprawnienie użytkownika, członkostwo w stałej db_securityadmin roli bazy danych, członkostwo w stałej db_owner roli bazy danych lub członkostwo w stałej sysadmin roli serwera. |
| Rola bazy danych |
ALTER uprawnienia do roli, członkostwa w stałej db_securityadmin roli bazy danych, członkostwa w stałej db_owner roli bazy danych lub członkostwa w stałej sysadmin roli serwera. |
| Rola aplikacji |
ALTER uprawnienia do roli, członkostwa w stałej db_securityadmin roli bazy danych, członkostwa w stałej db_owner roli bazy danych lub członkostwa w stałej sysadmin roli serwera. |
Examples
A. Udzielanie uprawnień SELECT w tabeli
Poniższy przykład przyznaje SELECT użytkownikowi uprawnienia do RosaQdM tabeli Person.Address w AdventureWorks2025 bazie danych.
Ten przykład nie działa w usłudze Microsoft Fabric, ponieważ używa użytkownika do uwierzytelnionego logowania SQL, ale ten sam przykład działa dla użytkownika usługi Microsoft Entra ID Fabric, na przykład RosaQdM@contoso.com.
GRANT SELECT ON OBJECT::Person.Address TO RosaQdM;
GO
B. Udzielanie uprawnień EXECUTE w procedurze składowanej
Poniższy przykład udziela EXECUTE uprawnień do procedury HumanResources.uspUpdateEmployeeHireInfo składowanej roli aplikacji o nazwie Recruiting11.
USE AdventureWorks2022;
GRANT EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
TO Recruiting11;
GO
C. Udzielanie uprawnień REFERENCES w widoku z OPCJĄ UDZIELANIA
Poniższy przykład udziela REFERENCES uprawnień do kolumny w widoku BusinessEntityID użytkownikowi HumanResources.vEmployeeWanida za pomocą GRANT OPTIONpolecenia .
Ten przykład nie działa w usłudze Microsoft Fabric, ponieważ używa użytkownika do uwierzytelnionego logowania SQL, ale ten sam przykład działa dla użytkownika usługi Microsoft Entra ID Fabric, na przykład Wanida@contoso.com.
GRANT REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee
TO Wanida WITH GRANT OPTION;
GO
D. Udzielanie uprawnień SELECT w tabeli bez używania frazy OBJECT
Poniższy przykład przyznaje SELECT użytkownikowi uprawnienia do RosaQdM tabeli Person.Address w AdventureWorks2025 bazie danych.
Ten przykład nie działa w usłudze Microsoft Fabric, ponieważ używa użytkownika do uwierzytelnionego logowania SQL, ale ten sam przykład działa dla użytkownika usługi Microsoft Entra ID Fabric, na przykład RosaQdM@contoso.com.
GRANT SELECT ON Person.Address TO RosaQdM;
GO
E. Udzielanie uprawnień SELECT w tabeli do konta domeny
Poniższy przykład przyznaje SELECT użytkownikowi uprawnienia do AdventureWorks2022\RosaQdM tabeli Person.Address w AdventureWorks2025 bazie danych.
Ten przykład, jak zapisano, nie działa w usłudze Microsoft Fabric, ponieważ używa konta domeny, ale ten sam przykład działa dla użytkownika usługi Microsoft Entra ID Fabric, na przykład RosaQdM@contoso.com.
GRANT SELECT ON Person.Address TO [AdventureWorks2022\RosaQdM];
GO
F. Udzielanie uprawnień EXECUTE w procedurze roli
Poniższy przykład tworzy rolę, a następnie udziela EXECUTE uprawnień do roli w procedurze uspGetBillOfMaterialsAdventureWorks2025 w bazie danych.
CREATE ROLE newrole ;
GRANT EXECUTE ON dbo.uspGetBillOfMaterials TO newrole ;
GO
G. Udzielanie uprawnień UNMASK w kolumnie
Poniższy przykład przyznaje UNMASK uprawnienie , część dynamicznego maskowania danych, dla kolumny email w tabeli Data.Membership użytkownikowi OutreachCoordinator.
Dynamiczne maskowanie danych nie jest obecnie obsługiwane w usłudze Microsoft Fabric.
GRANT UNMASK ON OBJECT::Data.Membership (email) to OutreachCoordinator;
GO
Treści powiązane
- Odmów uprawnień obiektu (Transact-SQL)
- ODWOŁAJ uprawnienia obiektu (Transact-SQL)
- widoki wykazu obiektów (Transact-SQL)
- Uprawnienia (aparat bazy danych)
- Podmioty (aparat bazy danych)
- Securables
- sys.fn_builtin_permissions (Transact-SQL)
- HAS_PERMS_BY_NAME (Transact-SQL)
- sys.fn_my_permissions (Transact-SQL)
- Dynamiczne maskowanie danych
- Row-Level bezpieczeństwo