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 do:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
System Platform Analitycznych (PDW)
Baza danych SQL w Microsoft Fabric
Aby łatwo zarządzać uprawnieniami w bazach danych, program SQL Server udostępnia kilka ról jako zasad zabezpieczeń, grupujących inne podmioty. Są one podobne do grup w systemie operacyjnym Windows. Role na poziomie bazy danych obejmują całą bazę danych w zakresie uprawnień.
Aby dodać i usunąć użytkowników do roli bazy danych, użyj ADD MEMBER opcji i DROP MEMBER instrukcji ALTER ROLE . System Platform Analytics (PDW) i usługa Azure Synapse Analytics nie obsługują korzystania z programu ALTER ROLE. Zamiast tego należy użyć starszych procedur sp_addrolemember i sp_droprolemember .
Istnieją dwa typy ról na poziomie bazy danych: stałe role bazy danych , które są wstępnie zdefiniowane w bazie danych i role bazy danych zdefiniowane przez użytkownika , które można utworzyć.
Stałe role bazy danych są definiowane na poziomie bazy danych i istnieją w każdej bazie danych. Członkowie roli bazy danych db_owner mogą zarządzać członkostwem ról bazy danych. Istnieją również pewne role bazy danych specjalnego przeznaczenia w msdb bazie danych.
Do ról na poziomie bazy danych można dodać dowolne konto bazy danych i inne role programu SQL Server.
Tip
Nie dodawaj ról bazy danych zdefiniowanych przez użytkownika jako członków stałych ról. Może to umożliwić niezamierzoną eskalację uprawnień.
Uprawnienia ról bazy danych zdefiniowanych przez użytkownika można dostosować przy użyciu instrukcji GRANT, DENY i REVOKE . Aby uzyskać więcej informacji, zobacz Uprawnienia (aparat bazy danych).
Aby uzyskać listę wszystkich uprawnień, zobacz plakat Uprawnienia silnika bazy danych. Nie można przyznać uprawnień na poziomie serwera do ról bazy danych. Loginy i inne uprawnienia na poziomie serwera (takie jak role serwera) nie mogą być dodawane do ról baz danych. W przypadku zabezpieczeń na poziomie serwera w programie SQL Server zamiast tego użyj ról serwera . Nie można udzielać uprawnień na poziomie serwera za pośrednictwem ról w usługach Azure SQL Database i Azure Synapse Analytics.
Stałe role bazy danych
W poniższej tabeli przedstawiono stałe role bazy danych i ich możliwości. Te role istnieją we wszystkich bazach danych. Z wyjątkiem roli publicznej bazy danych nie można zmienić uprawnień przypisanych do stałych ról bazy danych.
| Stała nazwa roli bazy danych | Description |
|---|---|
| db_owner | Członkowie stałej roli bazy danych db_owner mogą wykonywać wszystkie działania konfiguracyjne i konserwacyjne w bazie danych, a także DROP bazę danych w SQL Server. (W usługach SQL Database i Azure Synapse niektóre działania konserwacyjne wymagają uprawnień na poziomie serwera i nie mogą być wykonywane przez db_owners). |
| db_securityadmin | Członkowie db_securityadmin stałej roli bazy danych mogą modyfikować członkostwo w rolach niestandardowych i zarządzać uprawnieniami. Członkowie tej roli mogą potencjalnie podnieść swoje uprawnienia, a ich działania powinny być monitorowane. |
| db_accessadmin | Członkowie stałej roli w bazie danych db_accessadmin mogą dodawać lub usuwać dostęp do bazy danych dla loginów systemu Windows, grup systemu Windows i loginów SQL Server. |
| db_backupoperator | Członkowie db_backupoperator stałej roli bazy danych mogą utworzyć kopię zapasową bazy danych. |
| db_ddladmin | Członkowie stałej roli db_ddladmin bazy danych mogą uruchamiać dowolne polecenie języka definicji danych (DDL) w bazie danych. Członkowie tej roli mogą potencjalnie podnieść swoje uprawnienia, manipulując kodem, który może zostać wykonany w ramach wysokich uprawnień, a ich akcje powinny być monitorowane. |
| db_datawriter | Członkowie db_datawriter stałej roli bazy danych mogą dodawać, usuwać lub zmieniać dane we wszystkich tabelach użytkowników. W większości przypadków użycia ta rola jest łączona z członkostwem db_datareader , aby umożliwić odczytywanie danych, które mają zostać zmodyfikowane. |
| db_datareader | Członkowie db_datareader stałej roli bazy danych mogą odczytywać wszystkie dane ze wszystkich tabel i widoków użytkownika. Obiekty użytkownika mogą istnieć w dowolnym schemacie z wyjątkiem sys i INFORMATION_SCHEMA. |
| db_denydatawriter | Członkowie stałej roli bazy danych db_denydatawriter nie mogą dodawać, modyfikować ani usuwać żadnych danych w tabelach użytkownika w bazie danych. |
| db_denydatareader | Członkowie stałej roli bazy danych db_denydatareader nie mogą odczytywać żadnych danych z tabel i widoków użytkownika w bazie danych. Członkowie tej roli nie mogą również odczytywać metadanych dotyczących bazy danych i jej obiektów, takich jak wyświetlanie widoków systemu. |
Nie można zmienić uprawnień przypisanych do stałych ról bazy danych. Wszystkie role (w tym public rola) mają uprawnienia CONNECT. Na poniższej ilustracji przedstawiono uprawnienia przypisane do stałych ról bazy danych:
| Nazwa roli | Permissions |
|---|---|
| db_owner | KONTROLA BAZY DANYCH: ma wszystkie uprawnienia w bazie danych. |
| db_securityadmin | ZMIENIANIE DOWOLNEJ ROLI APLIKACJI TWORZENIE SCHEMATU ZMIENIANIE DOWOLNEJ ROLI DEFINICJA WIDOKU |
| db_accessadmin | ZMIENIANIE DOWOLNEGO UŻYTKOWNIKA TWORZENIE SCHEMATU TWORZENIE UŻYTKOWNIKA |
| db_backupoperator | KOPIA ZAPASOWA BAZA DANYCH DZIENNIK KOPII ZAPASOWYCH CHECKPOINT |
| db_ddladmin | ZMIENIANIE DOWOLNEGO ZESTAWU ZMIENIANIE DOWOLNEGO KLUCZA ASYMETRYCZNEGO ZMIENIANIE DOWOLNEGO CERTYFIKATU ZMIEŃ DOWOLNY KONTRAKT ZMIENIANIE DOWOLNEGO WYZWALACZA DDL BAZY DANYCH ZMIENIANIE DOWOLNEGO POWIADOMIENIA O ZDARZENIU BAZY DANYCH ZMIENIANIE DOWOLNEJ PRZESTRZENI DANYCH ZMIENIANIE DOWOLNEJ BIBLIOTEKI ZEWNĘTRZNEJ ZMIEŃ DOWOLNY KATALOG PEŁNOTEKSTOWY ZMIENIANIE DOWOLNEGO TYPU KOMUNIKATU ZMIENIANIE DOWOLNEGO POWIĄZANIA USŁUGI ZDALNEJ ZMIENIANIE DOWOLNEJ TRASY ZMIENIANIE DOWOLNEGO SCHEMATU ZMIENIANIE DOWOLNEJ USŁUGI ZMIENIANIE DOWOLNEGO KLUCZA SYMETRYCZNEGO CHECKPOINT TWORZENIE AGREGACJI TWORZENIE ASEMBLI TWORZENIE KLUCZA ASYMETRYCZNEGO TWORZENIE CERTYFIKATU TWORZENIE KONTRAKTU POWIADOMIENIE O ZDARZENIU TWORZENIA BAZY DANYCH DDL UTWÓRZ DOMYŚLNE TWORZENIE BIBLIOTEKI ZEWNĘTRZNEJ TWORZENIE WYKAZU PEŁNOTEKSTOWEGO UTWÓRZ FUNKCJĘ TWORZENIE TYPU KOMUNIKATU TWORZENIE PROCEDURY TWORZENIE KOLEJKI TWORZENIE POWIĄZANIA USŁUGI ZDALNEJ TWORZENIE TRASY TWORZENIE REGUŁY TWORZENIE SCHEMATU TWORZENIE USŁUGI TWORZENIE KLUCZA SYMETRYCZNEGO TWORZENIE SYNONIMU CREATE TABLE TWORZENIE TYPU UTWÓRZ WIDOK TWORZENIE KOLEKCJI SCHEMATÓW XML REFERENCJE Dotyczy: SQL Server 2019 i nowsze wersje ZMIEŃ DOWOLNY ZEWNĘTRZNY JĘZYK TWORZENIE JĘZYKA ZEWNĘTRZNEGO Dotyczy: SQL Server 2022 i nowsze ZMIENIANIE DOWOLNEGO ZEWNĘTRZNEGO ŹRÓDŁA DANYCH ZMIENIANIE DOWOLNEGO FORMATU PLIKU ZEWNĘTRZNEGO ZMIENIANIE DOWOLNEGO ZADANIA ZEWNĘTRZNEGO Zmienić dowolny strumień zewnętrzny ALTER LEDGER WŁĄCZANIE REJESTRU |
| db_datareader | PRZYZNAJ UPRAWNIENIE SELECT NA BAZĘ DANYCH::<database-name> |
| db_denydatareader | ODMÓW WYBORU W BAZIE DANYCH::<database-name> |
| db_datawriter | GRANT INSERT ON DATABASE::<database-name>UDZIEL AKTUALIZACJI BAZY DANYCH:: <database-name>UDZIEL UPRAWNIEŃ DO USUWANIA NA BAZIE DANYCH:: <database-name> |
| db_denydatawriter | ODMÓW WSTAW W BAZIE DANYCH::<database-name>ODMOWA ZMIANY W BAZIE DANYCH:: <database-name>ODMÓW USUNIĘCIA W BAZIE DANYCH:: <database-name> |
| public | Nie ma uprawnień na poziomie bazy danych związanych z rolą publicznej bazy danych. Jednak niektóre uprawnienia bazy danych są domyślnie obecne. W szczególności WYŚWIETL DOWOLNĄ DEFINICJĘ KLUCZA SZYFROWANIA KOLUMNY, WYŚWIETL DOWOLNĄ DEFINICJĘ KLUCZA GŁÓWNEGO KOLUMNY i WYBIERZ uprawnienie dla wielu poszczególnych tabel systemowych. Te uprawnienia można odwołać. |
Role specjalne dla usług Azure SQL Database i Azure Synapse
Te role bazy danych istnieją tylko w wirtualnej master bazie danych. Ich uprawnienia są ograniczone do akcji wykonywanych w programie master. Do tych ról można dodawać tylko użytkowników master bazy danych. Nie można dodać identyfikatorów logowania do tych ról, ale użytkownicy mogą być tworzeni na podstawie identyfikatorów logowania, a następnie do ról można dodawać tych użytkowników. Użytkowników z zawartej bazy danych w master można również dodawać do tych ról. Jednak ograniczonym użytkownikom baz danych dodanym do roli dbmanager w master nie można zlecić tworzenia nowych baz danych.
| Nazwa roli | Description |
|---|---|
| dbmanager | Może tworzyć i usuwać bazy danych. Członek roli dbmanager , która tworzy bazę danych, staje się właścicielem tej bazy danych, co umożliwia temu użytkownikowi nawiązanie połączenia z bazą danych jako użytkownik dbo. Użytkownik dbo ma wszystkie uprawnienia bazy danych w tej bazie. Członkowie roli dbmanager nie muszą mieć uprawnień dostępu do baz danych, których nie posiadają. |
| db_exporter | Członkowie db_exporter stałej roli bazy danych mogą wykonywać wszystkie działania eksportu danych. Uprawnienia przyznane za pośrednictwem tej roli to CREATE TABLE, , ALTER ANY SCHEMAALTER ANY EXTERNAL DATA SOURCE, ALTER ANY EXTERNAL FILE FORMAT.Dotyczy: Dedykowane pule SQL dla Azure Synapse Analytics (poprzednio SQL DW) |
| loginmanager | Może tworzyć i usuwać loginy w wirtualnej bazie danych master. |
Note
Podmiot główny na poziomie serwera oraz administrator Microsoft Entra (jeśli jest skonfigurowany) mają wszystkie uprawnienia w SQL Database i Azure Synapse Analytics bez konieczności bycia członkami żadnych ról. Aby uzyskać więcej informacji, zobacz Autoryzowanie dostępu bazy danych do usług SQL Database, SQL Managed Instance i Azure Synapse Analytics.
Niektóre role bazy danych nie mają zastosowania do usługi Azure SQL lub Azure Synapse:
db_backupoperator nie ma zastosowania w usłudze Azure SQL Database (nie w usłudze Azure SQL Managed Instance) ani w bezserwerowej puli usługi Azure Synapse Analytics, ponieważ polecenia T-SQL kopii zapasowej i przywracania nie są dostępne.
db_datawriter i db_denydatawriter nie mają zastosowania do bezserwerowej usługi Azure Synapse Analytics, ponieważ tylko odczytuje dane zewnętrzne.
Role w bazie danych msdb
Baza msdb danych zawiera role specjalne, które są wyświetlane w poniższej tabeli.
msdb nazwa roli |
Description |
|---|---|
|
db_ssisadmin db_ssisoperator db_ssisltduser |
Członkowie tych ról bazy danych mogą administrować usługą SSIS i korzystać z nich. Wystąpienia programu SQL Server uaktualnione z wcześniejszej wersji mogą zawierać starszą wersję roli, która została nazwana przy użyciu usług Data Transformation Services (DTS) zamiast usług SSIS. Aby uzyskać więcej informacji, zobacz Role usług Integration Services (SSIS Service). |
|
dc_admin dc_operator dc_proxy |
Członkowie tych ról bazy danych mogą administrować modułem zbierającym dane i korzystać z niego. Aby uzyskać więcej informacji, zobacz Zbieranie danych. |
| PolicyAdministratorRole | Członkowie roli bazy danych db_ PolicyAdministratorRole mogą wykonywać wszystkie działania konfiguracyjne i konserwacyjne dotyczące zasad i warunków zarządzania opartego na zasadach. Aby uzyskać więcej informacji, zobacz Administrowanie serwerami przy użyciu zarządzania opartego na zasadach. |
|
ServerGroupAdministratorRole ServerGroupReaderRole |
Członkowie tych ról bazy danych mogą administrować zarejestrowanymi grupami serwerów i korzystać z nich. |
| dbm_monitor | Utworzono msdb w bazie danych, gdy pierwsza baza danych jest zarejestrowana w monitorze mirroringu baz danych. Rola dbm_monitor nie ma członków, dopóki administrator systemu nie przypisze użytkowników do roli. |
Członkowie roli db_ssisadmin i roli dc_admin mogą mieć możliwość podniesienia uprawnień administratora systemu. To podniesienie uprawnień może wystąpić, ponieważ te role mogą modyfikować pakiety usług Integration Services i pakiety usług Integration Services mogą być wykonywane przez program SQL Server przy użyciu kontekstu zabezpieczeń sysadmin agenta programu SQL Server. Aby chronić przed podniesieniem uprawnień podczas uruchamiania planów konserwacji, zestawów zbierania danych i innych pakietów Integration Services, skonfiguruj zadania SQL Server Agent, które uruchamiają pakiety, aby używały konta proxy z ograniczonymi uprawnieniami lub dodawaj tylko członków sysadmin do ról db_ssisadmin i dc_admin.
Praca z rolami na poziomie bazy danych
W poniższej tabeli opisano polecenia, widoki i funkcje do pracy z rolami na poziomie bazy danych.
| Feature | Typ | Description |
|---|---|---|
| sp_helpdbfixedrole | Metadata | Zwraca listę stałych ról bazy danych. |
| sp_dbfixedrolepermission | Metadata | Wyświetla uprawnienia stałej roli bazy danych. |
| sp_helprole | Metadata | Zwraca informacje o rolach w bieżącej bazie danych. |
| sp_helprolemember | Metadata | Zwraca informacje o członkach roli w bieżącej bazie danych. |
| sys.database_role_members | Metadata | Zwraca jeden wiersz dla każdego członka każdej roli bazy danych. |
| IS_MEMBER | Metadata | Wskazuje, czy bieżący użytkownik jest członkiem określonej grupy systemu Microsoft Windows, grupy Microsoft Entra lub roli bazy danych programu Microsoft SQL Server. |
| TWORZENIE ROLI | Command | Tworzy nową rolę bazy danych w bieżącej bazie danych. |
| ALTER ROLE | Command | Zmienia nazwę lub członkostwo roli bazy danych. |
| UPUŚĆ ROLĘ | Command | Usuwa rolę z bazy danych. |
| sp_addrole | Command | Tworzy nową rolę bazy danych w bieżącej bazie danych. |
| sp_droprole | Command | Usuwa rolę bazy danych z bieżącej bazy danych. |
| sp_addrolemember | Command | Dodaje użytkownika bazy danych, rolę bazy danych, identyfikator logowania systemu Windows lub grupę systemu Windows do roli bazy danych w bieżącej bazie danych. Wszystkie platformy z wyjątkiem systemu Analytics Platform System (PDW) i usługi Azure Synapse powinny zamiast tego używać ALTER ROLE . |
| sp_droprolemember | Command | Usuwa konto zabezpieczeń z roli programu SQL Server w bieżącej bazie danych. Wszystkie platformy z wyjątkiem systemu Analytics Platform System (PDW) i usługi Azure Synapse powinny zamiast tego używać ALTER ROLE . |
| GRANT | Permissions | Dodaje uprawnienie do roli. |
| DENY | Permissions | Odmawia uprawnień do roli. |
| REVOKE | Permissions | Usuwa wcześniej przyznane lub odrzucone uprawnienia. |
Rola publicznej bazy danych
Każdy użytkownik bazy danych należy do publicznej roli bazy danych. Gdy użytkownik nie otrzymał lub nie odmówiono mu określonych uprawnień do zabezpieczanego obiektu, użytkownik dziedziczy uprawnienia przyznane publiczny na tym obiekcie. Nie można usunąć użytkowników bazy danych z roli publicznej .
Examples
W przykładach w tej sekcji pokazano, jak pracować z rolami na poziomie bazy danych.
A. Dodawanie użytkownika do roli na poziomie bazy danych
W poniższym przykładzie dodano użytkownika "Ben" do stałej roli db_datareaderna poziomie bazy danych .
ALTER ROLE db_datareader ADD MEMBER Ben;
GO
B. Wyświetl wszystkich użytkowników bazy danych będących członkami roli na poziomie bazy danych
Poniższa instrukcja zwraca wszystkich członków dowolnej roli bazy danych.
SELECT roles.principal_id AS RolePrincipalID,
roles.name AS RolePrincipalName,
database_role_members.member_principal_id AS MemberPrincipalID,
members.name AS MemberPrincipalName
FROM sys.database_role_members AS database_role_members
INNER JOIN sys.database_principals AS roles
ON database_role_members.role_principal_id = roles.principal_id
INNER JOIN sys.database_principals AS members
ON database_role_members.member_principal_id = members.principal_id;
GO