Megosztás a következőn keresztül:


Adatbázisszintű szerepkörök

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitikai Platform System (PDW)SQL adatbázis a Microsoft Fabric-ben

Az adatbázisok engedélyeinek egyszerű kezelése érdekében az SQL Server számos olyan szerepkört biztosít, amelyek biztonsági tagok, amelyek más tagokat csoportosítanak. Olyanok, mint a Windows operációs rendszer csoportjai . Az adatbázisszintű szerepkörök az engedélyek szempontjából az egész adatbázisra kiterjednek.

Ha felhasználókat szeretne hozzáadni és eltávolítani egy adatbázis-szerepkörhöz, használja az ADD MEMBER ALTER ROLE utasítás és DROP MEMBER a beállításokat. Az Analytics Platform System (PDW) és az Azure Synapse Analytics nem támogatja a ALTER ROLE használatát. Használja inkább a régebbi sp_addrolemember és sp_droprolemember eljárásokat.

Az adatbázisszintű szerepköröknek két típusa van: az adatbázisban előre definiált rögzített adatbázis-szerepkörök és a létrehozható felhasználó által definiált adatbázis-szerepkörök .

A rögzített adatbázis-szerepkörök adatbázisszinten vannak definiálva, és minden adatbázisban léteznek. A db_owner adatbázis-szerepkör tagjai kezelhetik a rögzített adatbázisszerepkör-tagságot. Vannak speciális célú adatbázis-szerepkörök is az msdb adatbázisban.

Bármilyen adatbázisfiókot és más SQL Server-szerepkört felvehet adatbázisszintű szerepkörökbe.

Tip

Ne adjon hozzá felhasználó által definiált adatbázis-szerepköröket rögzített szerepkörök tagjaiként. Ez lehetővé teheti a nem szándékos jogosultságok eszkalálását.

A felhasználó által definiált adatbázis-szerepkörök engedélyeit a GRANT, a DENY és a REVOKE utasítással szabhatja testre. További információ: Engedélyek (adatbázismotor).

Az összes engedély listáját az adatbázismotor engedélyeinek plakátja tartalmazza. Kiszolgálószintű engedélyek nem adhatóak adatbázis-szerepkörökhöz. A bejelentkezések és más kiszolgálószintű tagok (például kiszolgálói szerepkörök) nem vehetők fel az adatbázis-szerepkörökbe. Az SQL Server kiszolgálószintű biztonságához használjon inkább kiszolgálói szerepköröket . A kiszolgálószintű engedélyek nem adhatók meg az Azure SQL Database és az Azure Synapse Analytics szerepköreivel.

Rögzített adatbázis-szerepkörök

Az alábbi táblázat a rögzített adatbázis-szerepköröket és azok képességeit mutatja be. Ezek a szerepkörök minden adatbázisban léteznek. A nyilvános adatbázis-szerepkör kivételével a rögzített adatbázis-szerepkörökhöz rendelt engedélyek nem módosíthatók.

Rögzített adatbázisszerepkör neve Description
db_owner A db_owner rögzített adatbázis-szerepkör tagjai minden konfigurációs és karbantartási tevékenységet elvégezhetnek az adatbázisban, valamint kezelhetik az adatbázist az SQL Serveren is DROP . (Az SQL Database-ben és az Azure Synapse-ban egyes karbantartási tevékenységek kiszolgálószintű engedélyeket igényelnek, és a db_owner tagjai nem hajthatják végre.)
db_securityadmin A db_securityadmin rögzített adatbázis-szerepkör tagjai csak egyéni szerepkörök szerepkör-tagságát módosíthatják, és kezelhetik az engedélyeket. Ennek a szerepkörnek a tagjai emelhetik a jogosultságaikat, és a tevékenységüket figyelni kell.
db_accessadmin A db_accessadmin rögzített adatbázis-szerepkör tagjai hozzáadhatják vagy eltávolíthatják az adatbázishoz való hozzáférést Windows-bejelentkezésekhez, Windows-csoportokhoz és SQL Server-bejelentkezésekhez.
db_backupoperator A db_backupoperator rögzített adatbázis-szerepkör tagjai biztonsági másolatot készíthetnek az adatbázisról.
db_ddladmin A db_ddladmin rögzített adatbázis-szerepkör tagjai bármilyen Adatdefiníciós nyelv (DDL) parancsot futtathatnak egy adatbázisban. Ennek a szerepkörnek a tagjai emelhetik a jogosultságaikat olyan kód módosításával, amely magas jogosultságokkal végrehajtható, és a műveleteket figyelni kell.
db_datawriter A db_datawriter rögzített adatbázis-szerepkör tagjai az összes felhasználói táblában hozzáadhatnak, törölhetnek vagy módosíthatnak adatokat. A legtöbb használati esetben ez a szerepkör db_datareader tagsággal kombinálva lehetővé teszi a módosítani kívánt adatok olvasását.
db_datareader A db_datareader rögzített adatbázis-szerepkör tagjai az összes felhasználói táblából és nézetből beolvashatják az összes adatot. A felhasználói objektumok bármely sémában létezhetnek, kivéve sys a .INFORMATION_SCHEMA
db_denydatawriter A db_denydatawriter rögzített adatbázis-szerepkör tagjai nem tudnak adatokat hozzáadni, módosítani vagy törölni az adatbázis felhasználói tábláiban.
db_denydatareader A db_denydatareader rögzített adatbázis-szerepkör tagjai nem tudnak adatokat olvasni az adatbázis felhasználói tábláiból és nézeteiből. A szerepkör tagjai nem tudják olvasni az adatbázis és objektumai metaadatait, például a rendszernézetek megtekintését.

A rögzített adatbázis-szerepkörökhöz rendelt engedélyek nem módosíthatók. Minden szerepkör (beleértve a public szerepkört) rendelkezik az CONNECT engedélyekkel. Az alábbi ábrán a rögzített adatbázis-szerepkörökhöz rendelt engedélyek láthatók:

Szerepkör neve Permissions
db_owner CONTROL DATABASE: Az adatbázis minden engedélyével rendelkezik.
db_securityadmin ALTER ANY APPLICATION ROLE
CREATE SCHEMA
ALTER ANY ROLE
VIEW DEFINITION
db_accessadmin ALTER ANY USER
CREATE SCHEMA
CREATE USER
db_backupoperator BACKUP DATABASE
BACKUP LOG
CHECKPOINT
db_ddladmin ALTER ANY ASSEMBLY
ALTER ANY ASYMMETRIC KEY
ALTER ANY CERTIFICATE
ALTER ANY CONTRACT
ALTER ANY DATABASE DDL TRIGGER
ALTER ANY DATABASE EVENT NOTIFICATION
ALTER ANY DATASPACE
ALTER ANY EXTERNAL LIBRARY
ALTER ANY FULLTEXT CATALOG
ALTER ANY MESSAGE TYPE
ALTER ANY REMOTE SERVICE BINDING
ALTER ANY ROUTE
ALTER ANY SCHEMA
ALTER ANY SERVICE
ALTER ANY SYMMETRIC KEY
CHECKPOINT
CREATE AGGREGATE
CREATE ASSEMBLY
CREATE ASYMMETRIC KEY
CREATE CERTIFICATE
CREATE CONTRACT
CREATE DATABASE DDL EVENT NOTIFICATION
CREATE DEFAULT
CREATE EXTERNAL LIBRARY
CREATE FULLTEXT CATALOG
CREATE FUNCTION
CREATE MESSAGE TYPE
CREATE PROCEDURE
CREATE QUEUE
CREATE REMOTE SERVICE BINDING
CREATE ROUTE
CREATE RULE
CREATE SCHEMA
CREATE SERVICE
CREATE SYMMETRIC KEY
CREATE SYNONYM
CREATE TABLE
CREATE TYPE
CREATE VIEW
CREATE XML SCHEMA COLLECTION
REFERENCES

A következőkre vonatkozik: SQL Server 2019 (15.x) és újabb verziók:
ALTER ANY EXTERNAL LANGUAGE
CREATE EXTERNAL LANGUAGE

A következőkre vonatkozik: SQL Server 2022 (16.x) és újabb verziók:
ALTER ANY EXTERNAL DATA SOURCE
ALTER ANY EXTERNAL FILE FORMAT
ALTER ANY EXTERNAL JOB
ALTER ANY EXTERNAL STREAM
ALTER LEDGER
ENABLE LEDGER
db_datareader GRANT SELECT ON DATABASE::<database-name>
db_denydatareader DENY SELECT ON DATABASE::<database-name>
db_datawriter GRANT INSERT ON DATABASE::<database-name>
GRANT UPDATE ON DATABASE::<database-name>
GRANT DELETE ON DATABASE::<database-name>
db_denydatawriter DENY INSERT ON DATABASE::<database-name>
DENY UPDATE ON DATABASE::<database-name>
DENY DELETE ON DATABASE::<database-name>
public A nyilvános adatbázis-szerepkör nem rendelkezik adatbázisszintű engedélyekkel. Bizonyos adatbázis-engedélyek azonban alapértelmezés szerint jelen vannak. Pontosabban, VIEW ANY COLUMN ENCRYPTION KEY DEFINITION, VIEW ANY COLUMN MASTER KEY DEFINITIONés SELECT engedélyek számos különálló rendszertáblán. Ezek az engedélyek visszavonhatók.

Az Azure SQL Database és az Azure Synapse speciális szerepkörei

Ezek az adatbázis-szerepkörök csak a virtuális master adatbázisban léteznek. Engedélyük csak a (z) alkalmazásban végrehajtott masterműveletekre korlátozódik. Az master adatbázisban csak a felhasználók vehetők fel ezekhez a szerepkörökhöz. A bejelentkezések nem vehetők fel ezekhez a szerepkörökhöz, de a felhasználók bejelentkezések alapján hozhatók létre, és ezek a felhasználók hozzáadhatók a szerepkörökhöz. Ezekhez a master szerepkörökhöz a tartalmazott adatbázis-felhasználók is hozzáadhatók. A dbmanager szerepkörhöz master hozzáadott tárolt adatbázis-felhasználók azonban nem használhatók új adatbázisok létrehozására.

Szerepkör neve Description
dbmanager Adatbázisokat hozhat létre és törölhet. Az adatbázist létrehozó dbmanager szerepkör tagja lesz az adatbázis tulajdonosa, amely lehetővé teszi, hogy a felhasználó dbo-felhasználóként csatlakozzon az adatbázishoz. A dbo-felhasználó minden adatbázis-engedéllyel rendelkezik az adatbázisban. A dbmanager szerepkör tagjai nem feltétlenül rendelkeznek engedéllyel a nem saját adatbázisaikhoz való hozzáféréshez.
db_exporter A db_exporter rögzített adatbázis-szerepkör tagjai minden adatexportálási tevékenységet végrehajthatnak. A szerepkörön keresztül megadott engedélyek a következőkCREATE TABLE: , ALTER ANY SCHEMA, ALTER ANY EXTERNAL DATA SOURCEALTER ANY EXTERNAL FILE FORMAT.

A következőkre vonatkozik: Dedikált Azure Synapse Analytics SQL-készletek (korábban SQL DW)
loginmanager Létrehozhat és törölhet bejelentkezéseket a virtuális master adatbázisban.

Note

A kiszolgálószintű egyszerű és a Microsoft Entra-rendszergazda (ha konfigurálva van) minden engedéllyel rendelkezik az SQL Database-ben és az Azure Synapse Analyticsben anélkül, hogy bármilyen szerepkör tagjának kellene lennie. További információ: Adatbázis-hozzáférés engedélyezése az SQL Database-hez, a felügyelt SQL-példányhoz és az Azure Synapse Analyticshez.

Egyes adatbázis-szerepkörök nem alkalmazhatók az Azure SQL-hez vagy az Azure Synapse-hoz:

  • db_backupoperator nem alkalmazható az Azure SQL Database-ben (nem az Azure SQL Managed Instance-ben) és az Azure Synapse Analytics kiszolgáló nélküli készletében, mert a T-SQL-parancsok biztonsági mentése és visszaállítása nem érhető el.

  • db_datawriter és db_denydatawriter nem alkalmazhatók kiszolgáló nélküli Azure Synapse Analyticsre, mert csak külső adatokat olvas be.

Szerepkörök az msdb-adatbázisban

Az msdb adatbázis az alábbi táblázatban látható speciális célú szerepköröket tartalmazza.

msdb szerepkör neve Description
db_ssisadmin
db_ssisoperator
db_ssisltduser
Ezeknek az adatbázis-szerepköröknek a tagjai felügyelhetik és használhatják az SSIS-t. A korábbi verzióról frissített SQL Server-példányok az SSIS helyett a Data Transformation Services (DTS) használatával elnevezett szerepkör régebbi verzióját tartalmazhatják. További információ: Integration Services-szerepkörök (SSIS-szolgáltatás).
dc_admin
dc_operator
dc_proxy
Ezen adatbázis-szerepkörök tagjai felügyelhetik és használhatják az adatgyűjtőt. További információért lásd: Adatgyűjtés.
PolicyAdministratorRole Az db_PolicyAdministratorRole adatbázis-szerepkör tagjai minden konfigurációs és karbantartási tevékenységet elvégezhetnek a szabályzatalapú felügyeleti szabályzatokon és feltételeken. További információ: Kiszolgálók felügyelete házirendalapú felügyelettel.
ServerGroupAdministratorRole
ServerGroupReaderRole
Ezeknek az adatbázis-szerepköröknek a tagjai felügyelhetik és használhatják a regisztrált kiszolgálócsoportokat.
dbm_monitor Az msdb adatbázisban jön létre, amikor az első adatbázis regisztrálva van az Adatbázistükrözés-figyelőben. A dbm_monitor szerepkörnek nincsenek tagjai, amíg a rendszergazda nem rendel hozzá felhasználókat a szerepkörhöz.

A db_ssisadmin és a dc_admin szerepkör tagjai emelhetik jogosultságaikat a sysadminra. Ez a jogosultságszint-emelés azért fordulhat elő, mert ezek a szerepkörök módosíthatják az Integration Services-csomagokat, és az Integration Services-csomagokat az SQL Server az SQL Server-ügynök sysadmin biztonsági környezetével hajthatja végre. A karbantartási tervek, az adatgyűjtési csoportok és más Integration Services-csomagok futtatásakor a jogosultság ilyen emelése elleni védelem érdekében konfigurálja a csomagokat futtató SQL Server Agent-feladatokat, hogy korlátozott jogosultságokkal rendelkező proxyfiókot használjon, vagy csak sysadmin tagokat vegyen fel a db_ssisadmin és dc_admin szerepkörökbe.

Adatbázisszintű szerepkörök kezelése

Az alábbi táblázat ismerteti az adatbázisszintű szerepkörökkel való munkavégzéshez szükséges parancsokat, nézeteket és függvényeket.

Feature Típus Description
sp_helpdbfixedrole Metadata A rögzített adatbázis-szerepkörök listáját adja vissza.
sp_dbfixedrolepermission Metadata Egy rögzített adatbázis-szerepkör engedélyeit jeleníti meg.
sp_helprole Metadata Az aktuális adatbázisban lévő szerepkörök adatait adja vissza.
sp_helprolemember Metadata Az aktuális adatbázisban lévő szerepkör tagjaival kapcsolatos információkat adja vissza.
sys.database_role_members Metadata Az egyes adatbázis-szerepkörök minden egyes tagjára egy sort ad vissza.
IS_MEMBER Metadata Azt jelzi, hogy az aktuális felhasználó tagja-e a megadott Microsoft Windows-csoportnak, a Microsoft Entra csoportnak vagy a Microsoft SQL Server adatbázis-szerepkörnek.
SZEREPKÖR LÉTREHOZÁSA Command Új adatbázis-szerepkört hoz létre az aktuális adatbázisban.
ALTER ROLE Command Módosítja egy adatbázis-szerepkör nevét vagy tagságát.
DROP ROLE Command Eltávolít egy szerepkört az adatbázisból.
sp_addrole Command Új adatbázis-szerepkört hoz létre az aktuális adatbázisban.
sp_droprole Command Eltávolít egy adatbázis-szerepkört az aktuális adatbázisból.
sp_addrolemember Command Adatbázis-felhasználót, adatbázis-szerepkört, Windows-bejelentkezést vagy Windows-csoportot ad hozzá egy adatbázis-szerepkörhöz az aktuális adatbázisban. Ehelyett az Analytics Platform System (PDW) és az Azure Synapse kivételével minden platformnak használnia ALTER ROLE kell.
sp_droprolemember Command Eltávolít egy biztonsági fiókot egy SQL Server-szerepkörből az aktuális adatbázisban. Ehelyett az Analytics Platform System (PDW) és az Azure Synapse kivételével minden platformnak használnia ALTER ROLE kell.
GRANT Permissions Hozzáad egy engedélyt egy szerepkörhöz.
DENY Permissions Egy szerepkör engedélyét tagadja meg.
REVOKE Permissions Eltávolítja a korábban megadott vagy megtagadott engedélyeket.

Nyilvános adatbázis-szerepkör

Minden adatbázis-felhasználó a nyilvános adatbázis-szerepkörhöz tartozik. Ha egy felhasználó nem kapott vagy nem tagadott meg adott engedélyeket egy biztonságos objektumon, a felhasználó örökli az adott objektumon a nyilvánosság számára megadott engedélyeket. Az adatbázis felhasználói nem távolíthatók el a nyilvános szerepkörből.

Examples

Az ebben a szakaszban szereplő példák bemutatják, hogyan használható adatbázisszintű szerepkörökkel.

A. Felhasználó hozzáadása adatbázisszintű szerepkörhöz

Az alábbi példa hozzáadja a "Ben" felhasználót a rögzített adatbázisszintű szerepkörhöz db_datareader.

ALTER ROLE db_datareader ADD MEMBER Ben;
GO

B. Az adatbázisszintű szerepkörök tagjai közé tartozó összes adatbázisnév listázása

A következő utasítás visszaadja bármely adatbázis-szerepkör összes tagját.

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