Udostępnij za pomocą


Główne uprawnienia bazy danych GRANT (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Przyznaje uprawnienia użytkownikowi bazy danych, roli bazy danych lub roli aplikacji w programie SQL Server.

Transact-SQL konwencje składni

Syntax

GRANT permission [ ,...n ]    
    ON   
    {  [ USER :: database_user ]  
     | [ ROLE :: database_role ]  
     | [ APPLICATION ROLE :: application_role ]  
    }  
    TO <database_principal> [ ,...n ]  
       [ WITH GRANT OPTION ]  
       [ AS <database_principal> ]  
  
<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 podmiotu zabezpieczeń bazy danych. Aby uzyskać listę uprawnień, zobacz sekcję Uwagi w dalszej części tego tematu.

UŻYTKOWNIK ::database_user
Określa klasę i nazwę użytkownika, któremu udzielono uprawnień. Kwalifikator zakresu (::) jest wymagany.

ROLA ::database_role
Określa klasę i nazwę roli, której udzielono uprawnień. Kwalifikator zakresu (::) jest wymagany.

ROLA APLIKACJI ::application_role

Określa klasę i nazwę roli aplikacji, której udzielono uprawnień. Kwalifikator zakresu (::) jest wymagany.

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
Dotyczy: SQL Server 2008 (10.0.x) i nowsze, SQL Database.

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

Informacje o jednostkach baz danych są widoczne w widoku katalogu sys.database_principals . Informacje o uprawnieniach na poziomie bazy danych są widoczne w widoku katalogu sys.database_permissions .

Uprawnienia użytkownika bazy danych

Użytkownik bazy danych to zabezpieczanie na poziomie bazy danych zawarte w bazie danych, która jest jej elementem nadrzędnym w hierarchii uprawnień. Najbardziej specyficzne i ograniczone uprawnienia, które można udzielić użytkownikowi bazy danych, są wymienione w poniższej tabeli wraz z bardziej ogólnymi uprawnieniami, które obejmują je przez implikację.

Uprawnienie użytkownika bazy danych Sugerowane przez uprawnienia użytkownika bazy danych Dorozumiane przez uprawnienie bazy danych
CONTROL CONTROL CONTROL
IMPERSONATE CONTROL CONTROL
ALTER CONTROL ZMIENIANIE DOWOLNEGO UŻYTKOWNIKA
DEFINICJA WIDOKU CONTROL DEFINICJA WIDOKU

Uprawnienia roli bazy danych

Rola bazy danych jest zabezpieczaną na poziomie bazy danych zawartą w bazie danych, która jest jej elementem nadrzędnym w hierarchii uprawnień. Najbardziej szczegółowe i ograniczone uprawnienia, które można udzielić w roli bazy danych, są wymienione w poniższej tabeli wraz z bardziej ogólnymi uprawnieniami, które obejmują je przez implikację.

Uprawnienie roli bazy danych Sugerowane przez uprawnienie roli bazy danych Dorozumiane przez uprawnienie bazy danych
CONTROL CONTROL CONTROL
PRZEJMIJ ODPOWIEDZIALNOŚĆ CONTROL CONTROL
ALTER CONTROL ZMIENIANIE DOWOLNEJ ROLI
DEFINICJA WIDOKU CONTROL DEFINICJA WIDOKU

Uprawnienia roli aplikacji

Rola aplikacji jest zabezpieczaną na poziomie bazy danych zawartą w bazie danych, która jest jej elementem nadrzędnym w hierarchii uprawnień. Najbardziej szczegółowe i ograniczone uprawnienia, które można udzielić w roli aplikacji, są wymienione w poniższych, wraz z bardziej ogólnymi uprawnieniami, które obejmują je przez implikację.

Uprawnienie roli aplikacji Sugerowane przez uprawnienie roli aplikacji Dorozumiane przez uprawnienie bazy danych
CONTROL CONTROL CONTROL
ALTER CONTROL ZMIENIANIE DOWOLNEJ ROLI APLIKACJI
DEFINICJA WIDOKU CONTROL DEFINICJA WIDOKU

Permissions

Grantor (lub podmiot zabezpieczeń określony z opcją AS) musi mieć uprawnienie z opcją GRANT lub wyższe uprawnienie, które oznacza przyznanie uprawnienia.

Jeśli używasz opcji AS, obowiązują następujące dodatkowe wymagania.

JAK granting_principal Wymagane dodatkowe uprawnienia
Użytkownik bazy danych Uprawnienie IMPERSONATE dla użytkownika, członkostwo w db_securityadmin stałej roli bazy danych, członkostwo w db_owner stałej roli bazy danych lub członkostwo w stałej roli serwera sysadmin.
Użytkownik bazy danych zamapowany na użytkownika systemu Windows Uprawnienie IMPERSONATE dla użytkownika, członkostwo w db_securityadmin stałej roli bazy danych, członkostwo w db_owner stałej roli bazy danych lub członkostwo w stałej roli serwera sysadmin.
Użytkownik bazy danych zamapowany na grupę systemu Windows Członkostwo w grupie systemu Windows, członkostwo w db_securityadmin stałej roli bazy danych, członkostwo w db_owner stałej roli bazy danych lub członkostwo w stałej roli serwera sysadmin.
Użytkownik bazy danych zamapowany na certyfikat Członkostwo w db_securityadmin stałej roli bazy danych, członkostwo w db_owner stałej roli bazy danych lub członkostwo w stałej roli serwera sysadmin.
Użytkownik bazy danych zamapowany na klucz asymetryczny Członkostwo w roli bazy danych db_securityadminfixed, członkostwo w db_owner stałej roli bazy danych lub członkostwo w stałej roli serwera sysadmin.
Użytkownik bazy danych nie jest mapowany na żadną jednostkę serwera Uprawnienie IMPERSONATE dla użytkownika, członkostwo w db_securityadmin stałej roli bazy danych, członkostwo w db_owner stałej roli bazy danych lub członkostwo w stałej roli serwera sysadmin.
Rola bazy danych UPRAWNIENIA ALTER dla roli, członkostwa w roli bazy danych db_securityadminfixed, członkostwa w db_owner stałej roli bazy danych lub członkostwa w stałej roli serwera sysadmin.
Rola aplikacji UPRAWNIENIE ALTER dla roli, członkostwo w db_securityadmin stałej roli bazy danych, członkostwo w db_owner stałej roli bazy danych lub członkostwo w stałej roli serwera sysadmin.

Podmioty z uprawnieniami CONTROL do zabezpieczania mogą udzielać uprawnień do tego zabezpieczanego.

Grantees uprawnień KONTROLI w bazie danych, takich jak członkowie db_owner stałej roli bazy danych, mogą udzielić wszelkich uprawnień do zabezpieczania w bazie danych.

Examples

A. Udzielanie uprawnień CONTROL użytkownikowi innemu użytkownikowi

W poniższym przykładzie udzielono CONTROL użytkownikowi uprawnień AdventureWorks2025Wanida do użytkownika RolandX.

GRANT CONTROL ON USER::Wanida TO RolandX;  
GO  

B. Udzielanie użytkownikowi uprawnień VIEW DEFINITION dla roli z OPCJĄ UDZIELENIA

W poniższym przykładzie udzielono VIEW DEFINITION uprawnień do AdventureWorks2025 roli SammamishParking wraz z użytkownikiem GRANT OPTIONJinghaoLiubazy danych .

GRANT VIEW DEFINITION ON ROLE::SammamishParking   
    TO JinghaoLiu WITH GRANT OPTION;  
GO  

C. Przyznawanie uprawnień IMPERSONATE dla użytkownika do roli aplikacji

Poniższy przykład przyznaje IMPERSONATE użytkownikowi uprawnienie HamithaL do AdventureWorks2025 roli AccountsPayable17aplikacji .

Dotyczy: SQL Server 2008 (10.0.x) i nowsze, SQL Database.

GRANT IMPERSONATE ON USER::HamithaL TO AccountsPayable17;  
GO    

Zobacz też

ODMOWA uprawnień podmiotu zabezpieczeń bazy danych (Transact-SQL)
ODWOŁAJ uprawnienia podmiotu zabezpieczeń bazy danych (Transact-SQL)
sys.database_principals (Transact-SQL)
sys.database_permissions (Transact-SQL)
UTWÓRZ UŻYTKOWNIKA (Transact-SQL)
TWORZENIE ROLI APLIKACJI (Transact-SQL)
UTWÓRZ ROLĘ (Transact-SQL)
DOTACJA (Transact-SQL)
Uprawnienia (aparat bazy danych)
Podmioty (aparat bazy danych)