Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-database in Microsoft Fabric Preview
Voor het eenvoudig beheren van de machtigingen in uw databases biedt SQL Server verschillende rollen die beveiligingsprinciplen zijn die andere principals groeperen. Ze zijn net groepen in het Windows-besturingssysteem. Het machtigingenbereik van rollen op databaseniveau is databasebreed.
Als u gebruikers aan een databaserol wilt toevoegen en verwijderen, gebruikt u de ADD MEMBER
en DROP MEMBER
opties van de instructie ALTER ROLE . Analytics Platform System (PDW) en Azure Synapse Analytics bieden geen ondersteuning voor het gebruik van ALTER ROLE
. Gebruik in plaats daarvan de oudere sp_addrolemember en sp_droprolemember procedures.
Er zijn twee typen rollen op databaseniveau: vaste databaserollen die vooraf zijn gedefinieerd in de database en door de gebruiker gedefinieerde databaserollen die u kunt maken.
Vaste databaserollen worden gedefinieerd op databaseniveau en bestaan in elke database. Leden van de db_owner databaserol kunnen het lidmaatschap van een vaste databaserol beheren. Er zijn ook enkele speciale databaserollen in de msdb
database.
U kunt elk databaseaccount en andere SQL Server-rollen toevoegen aan rollen op databaseniveau.
Tip
Voeg geen door de gebruiker gedefinieerde databaserollen toe als leden van vaste rollen. Dit kan onbedoelde escalatie van bevoegdheden inschakelen.
De machtigingen van door de gebruiker gedefinieerde databaserollen kunnen worden aangepast met behulp van de instructies GRANT, DENY en REVOKE . Zie Machtigingen (Database Engine) voor meer informatie.
Zie de poster Machtigingen voor database-engine voor een lijst met alle machtigingen. Machtigingen op serverniveau kunnen niet worden verleend aan databaserollen. Aanmeldingen en andere principals op serverniveau (zoals serverfuncties) kunnen niet worden toegevoegd aan databaserollen. Voor beveiliging op serverniveau in SQL Server gebruikt u in plaats daarvan serverfuncties . Machtigingen op serverniveau kunnen niet worden verleend via rollen in Azure SQL Database en Azure Synapse Analytics.
Vaste databaserollen
In de volgende tabel ziet u de vaste databaserollen en hun mogelijkheden. Deze rollen bestaan in alle databases. Met uitzondering van de openbare database rol kunnen de machtigingen die zijn toegewezen aan de vaste databaserollen niet worden gewijzigd.
Vaste naam van databaserol | Description |
---|---|
db_owner | Leden van de db_owner vaste databaserol kunnen alle configuratie- en onderhoudsactiviteiten op de database uitvoeren en kunnen ook DROP de database in SQL Server uitvoeren. (In SQL Database en Azure Synapse vereisen sommige onderhoudsactiviteiten machtigingen op serverniveau en kunnen niet worden uitgevoerd door db_owners.) |
db_securityadmin | Leden van de db_securityadmin vaste databaserol kunnen alleen het rollidmaatschap voor aangepaste rollen wijzigen en machtigingen beheren. Leden van deze rol kunnen hun bevoegdheden mogelijk verhogen en hun acties moeten worden bewaakt. |
db_accessadmin | Leden van de db_accessadmin vaste databaserol kunnen toegang tot de database voor Windows-aanmeldingen, Windows-groepen en SQL Server-aanmeldingen toevoegen of verwijderen. |
db_backupoperator | Leden van de db_backupoperator vaste databaserol kunnen een back-up maken van de database. |
db_ddladmin | Leden van de db_ddladmin vaste databaserol kunnen elke DDL-opdracht (Data Definition Language) uitvoeren in een database. Leden van deze rol kunnen hun bevoegdheden mogelijk verhogen door code te bewerken die kan worden uitgevoerd onder hoge bevoegdheden en hun acties moeten worden bewaakt. |
db_datawriter | Leden van de db_datawriter vaste databaserol kunnen gegevens toevoegen, verwijderen of wijzigen in alle gebruikerstabellen. In de meeste gevallen wordt deze rol gecombineerd met db_datareader lidmaatschap, zodat de gegevens kunnen worden gelezen die moeten worden gewijzigd. |
db_datareader | Leden van de db_datareader vaste databaserol kunnen alle gegevens uit alle gebruikerstabellen en weergaven lezen. Gebruikersobjecten kunnen bestaan in elk schema behalve sys en INFORMATION_SCHEMA . |
db_denydatawriter | Leden van de db_denydatawriter vaste databaserol kunnen geen gegevens in de gebruikerstabellen in een database toevoegen, wijzigen of verwijderen. |
db_denydatareader | Leden van de db_denydatareader vaste databaserol kunnen geen gegevens lezen uit de gebruikerstabellen en weergaven in een database. Leden van deze rol kunnen ook geen metagegevens lezen over de database en de bijbehorende objecten, zoals het weergeven van systeemweergaven. |
De machtigingen die aan de vaste databaserollen zijn toegewezen, kunnen niet worden gewijzigd. Alle rollen (inclusief de public
rol) hebben de VERBINDEN-rechten. In de volgende afbeelding ziet u de machtigingen die zijn toegewezen aan de vaste databaserollen:
Rolnaam | Permissions |
---|---|
db_owner | CONTROL DATABASE: heeft alle machtigingen in de database. |
db_securityadmin | ELKE TOEPASSINGSROL WIJZIGEN SCHEMA MAKEN ELKE ROL WIJZIGEN DEFINITIE WEERGEVEN |
db_accessadmin | WILLEKEURIGE GEBRUIKER WIJZIGEN SCHEMA MAKEN GEBRUIKER AANMAKEN |
db_backupoperator | BACK-UP DATABASE BACKUPLOG CHECKPOINT |
db_ddladmin | WIJZIGEN VAN ELKE SAMENSTELLING ASYMMETRISCHE SLEUTEL WIJZIGEN ELK CERTIFICAAT WIJZIGEN EEN CONTRACT WIJZIGEN EEN DDL-TRIGGER VOOR DATABASES WIJZIGEN ELKE MELDING VOOR DATABASE-GEBEURTENIS WIJZIGEN ELKE DATASPACE WIJZIGEN IEDERE EXTERNE BIBLIOTHEEK WIJZIGEN ELKE VOLLEDIGE TEKSTCATALOGUS WIJZIGEN ELK BERICHTTYPE WIJZIGEN EEN EXTERNE SERVICEBINDING WIJZIGEN ELKE ROUTE WIJZIGEN EEN SCHEMA WIJZIGEN ELKE SERVICE WIJZIGEN ELKE SYMMETRISCHE SLEUTEL WIJZIGEN CHECKPOINT AGGREGATIE MAKEN MAAK ASSEMBLY AAN ASYMMETRISCHE SLEUTEL MAKEN CERTIFICAAT MAKEN CONTRACT MAKEN DDL-GEBEURTENISMELDING VOOR DATABASE MAKEN STANDAARD MAKEN EXTERNE BIBLIOTHEEK MAKEN VOLLEDIGE TEKSTCATALOGUS MAKEN MAAK FUNCTIE AAN BERICHTTYPE MAKEN Aanmaken van procedure WACHTRIJ MAKEN EXTERNE SERVICEBINDING MAKEN Maak route aan REGEL MAKEN SCHEMA MAKEN SERVICE CREËREN SYMMETRISCHE SLEUTEL MAKEN SYNONIEM MAKEN CREATE TABLE TYPE AANMAKEN VIEW AANMAKEN XML-SCHEMAVERZAMELING MAKEN VERWIJZINGEN Van toepassing op: SQL Server 2019 en hoger EEN EXTERNE TAAL WIJZIGEN EXTERNE TAAL AANMAKEN Van toepassing op: SQL Server 2022 en hoger ELKE EXTERNE GEGEVENSBRON WIJZIGEN WIJZIGEN VAN ELKE EXTERNE BESTANDSINDELING Elke externe taak wijzigen EEN EXTERNE STREAM WIJZIGEN ALTER LEDGER GROOTBOEK INSCHAKELEN |
db_datareader | GRANT SELECT ON DATABASE::<database-name> |
db_denydatareader | SELECT ON DATABASE WEIGEREN::<database-name> |
db_datawriter | INVOEGEN OP DATABASE::<database-name> UPDATE-TOESTEMMING VERLENEN OP DATABASE:: <database-name> VERWIJDEREN VERLENEN AAN DATABASE:: <database-name> |
db_denydatawriter | INVOEGEN IN DATABASE WEIGEREN::<database-name> UPDATE VAN DATABASE WEIGEREN:: <database-name> ONTKENNEN VERWIJDEREN OP DATABASE:: <database-name> |
public | Er zijn geen machtigingen op databaseniveau die inherent zijn aan de rol openbare database. Sommige databasemachtigingen zijn echter standaard aanwezig. BEKIJK ALLE KOLOMVERSLEUTELINGSLEUTELDEFINITIE, BEKIJK ALLE KOLOMHOOFDSLEUTELDEFINITIE en SELECTEER de machtiging VOOR VELE INDIVIDUELE systeemtabellen. Deze machtigingen kunnen worden ingetrokken. |
Speciale rollen voor Azure SQL Database en Azure Synapse
Deze databaserollen bestaan alleen in de virtuele master
database. Hun machtigingen zijn beperkt tot acties die worden uitgevoerd in master
. Alleen databasegebruikers in master
kunnen aan deze rollen worden toegevoegd. Aanmeldingen kunnen niet worden toegevoegd aan deze rollen, maar gebruikers kunnen worden gemaakt op basis van aanmeldingen en vervolgens kunnen deze gebruikers worden toegevoegd aan de rollen. Ingesloten databasegebruikers in master
kunnen ook aan deze rollen worden toegevoegd. Ingesloten databasegebruikers die zijn toegevoegd aan de dbmanager-rolmaster
kunnen echter niet worden gebruikt om nieuwe databases te maken.
Rolnaam | Description |
---|---|
dbmanager | Kan databases maken en verwijderen. Een lid van de dbmanager-rol die een database maakt, wordt de eigenaar van die database, waardoor die gebruiker verbinding kan maken met die database als dbo-gebruiker. De dbo-gebruiker heeft alle databasemachtigingen in de database. Leden van de rol dbmanager hebben niet noodzakelijkerwijs machtigingen voor toegang tot databases waarvan ze geen eigenaar zijn. |
db_exporter | Leden van de db_exporter vaste databaserol kunnen alle gegevensexportactiviteiten uitvoeren. Machtigingen verleend via deze rol zijn CREATE TABLE , , , ALTER ANY SCHEMA . ALTER ANY EXTERNAL DATA SOURCE ALTER ANY EXTERNAL FILE FORMAT Van toepassing op: Toegewezen SQL-pools van Azure Synapse Analytics (voorheen SQL DW) |
loginmanager | Kan aanmeldingen maken en verwijderen in de virtuele master database. |
Note
De principal op serverniveau en de Microsoft Entra-beheerder (indien geconfigureerd) hebben alle machtigingen in SQL Database en Azure Synapse Analytics zonder lid te hoeven zijn van rollen. Zie Databasetoegang autoriseren tot SQL Database, SQL Managed Instance en Azure Synapse Analytics voor meer informatie.
Sommige databaserollen zijn niet van toepassing op Azure SQL of Azure Synapse:
db_backupoperator niet van toepassing is in Azure SQL Database (niet Azure SQL Managed Instance) en een serverloze Azure Synapse Analytics-pool omdat T-SQL-opdrachten voor back-up en herstel niet beschikbaar zijn.
db_datawriter en db_denydatawriter niet van toepassing zijn op serverloze Azure Synapse Analytics, omdat er alleen externe gegevens worden gelezen.
Rollen in msdb-database
De msdb
database bevat de rollen voor speciaal gebruik die worden weergegeven in de volgende tabel.
msdb rolnaam |
Description |
---|---|
db_ssisadmin db_ssisoperator db_ssisltduser |
Leden van deze databaserollen kunnen SSIS beheren en gebruiken. Exemplaren van SQL Server die zijn bijgewerkt vanaf een eerdere versie, bevatten mogelijk een oudere versie van de rol die is benoemd met behulp van Data Transformation Services (DTS) in plaats van SSIS. Zie Integration Services Roles (SSIS Service) voor meer informatie. |
dc_admin dc_operator dc_proxy |
Leden van deze databaserollen kunnen de gegevensverzamelaar beheren en gebruiken. Zie Gegevensverzamelingvoor meer informatie. |
PolicyAdministratorRole | Leden van de databaserol db_ PolicyAdministratorRole kunnen alle configuratie- en onderhoudsactiviteiten uitvoeren voor beleid-gebaseerd beheer en beleidsvoorwaarden. Zie Servers beheren met behulp van op beleid gebaseerd beheer voor meer informatie. |
ServerGroupAdministratorRole ServerGroupReaderRole |
Leden van deze databaserollen kunnen geregistreerde servergroepen beheren en gebruiken. |
dbm_monitor | Gemaakt in de msdb database wanneer de eerste database is geregistreerd in Database Mirroring Monitor. De rol dbm_monitor heeft geen leden totdat een systeembeheerder gebruikers aan de rol toewijst. |
Leden van de db_ssisadmin-rol en de rol dc_admin kunnen mogelijk hun bevoegdheden verhogen naar sysadmin. Deze uitbreiding van bevoegdheden kan optreden omdat deze rollen Integration Services-pakketten kunnen wijzigen en deze pakketten door SQL Server kunnen worden uitgevoerd met behulp van de beveiligingscontext sysadmin van SQL Server Agent. Als u deze uitbreiding van bevoegdheden wilt voorkomen bij het uitvoeren van onderhoudsplannen, gegevensverzamelingssets en andere Integration Services-pakketten, configureert u SQL Server Agent-taken die pakketten uitvoeren om een proxyaccount met beperkte bevoegdheden te gebruiken of voegt u alleen sysadmin--leden toe aan de db_ssisadmin- en dc_admin-rollen.
Werken met rollen op databaseniveau
In de volgende tabel worden de opdrachten, weergaven en functies voor het werken met rollen op databaseniveau uitgelegd.
Feature | Type | Description |
---|---|---|
sp_helpdbfixedrole | Metadata | Retourneert een lijst met de vaste databaserollen. |
sp_dbfixedrolepermission | Metadata | Geeft de machtigingen van een vaste databaserol weer. |
sp_helprole | Metadata | Retourneert informatie over de rollen in de huidige database. |
sp_helprolemember | Metadata | Retourneert informatie over de leden van een rol in de huidige database. |
sys.database_role_members | Metadata | Retourneert één rij voor elk lid van elke databaserol. |
IS_MEMBER | Metadata | Geeft aan of de huidige gebruiker lid is van de opgegeven Microsoft Windows-groep, Microsoft Entra-groep of Microsoft SQL Server-databaserol. |
ROL AANMAKEN | Command | Hiermee maakt u een nieuwe databaserol in de huidige database. |
ALTER ROLE | Command | Hiermee wijzigt u de naam of het lidmaatschap van een databaserol. |
DROP ROLE | Command | Hiermee verwijdert u een rol uit de database. |
sp_addrole | Command | Hiermee maakt u een nieuwe databaserol in de huidige database. |
sp_droprole | Command | Hiermee verwijdert u een databaserol uit de huidige database. |
sp_addrolemember | Command | Voegt een databasegebruiker, databaserol, Windows-aanmelding of Windows-groep toe aan een databaserol in de huidige database. Alle platforms, behalve Analytics Platform System (PDW) en Azure Synapse, moeten in plaats daarvan ALTER ROLE gebruiken. |
sp_droprolemember | Command | Hiermee verwijdert u een beveiligingsaccount uit een SQL Server-functie in de huidige database. Alle platforms, behalve Analytics Platform System (PDW) en Azure Synapse, moeten in plaats daarvan ALTER ROLE gebruiken. |
GRANT | Permissions | Hiermee voegt u machtigingen toe aan een rol. |
DENY | Permissions | Een machtiging voor een rol wordt geweigerd. |
REVOKE | Permissions | Hiermee verwijdert u eerder verleende of geweigerde machtigingen. |
Rol openbare database
Elke databasegebruiker behoort tot de publieke database rol. Wanneer een gebruiker geen specifieke machtigingen voor een beveiligbaar object heeft gekregen of geweigerd, erft de gebruiker de machtigingen die aan openbaar voor dat object zijn verleend. Databasegebruikers kunnen niet worden verwijderd uit de openbare rol.
Examples
In de voorbeelden in deze sectie ziet u hoe u kunt werken met rollen op databaseniveau.
A. Een gebruiker toevoegen aan een rol op databaseniveau
In het volgende voorbeeld wordt de gebruiker 'Ben' toegevoegd aan de rol db_datareader
op vast databaseniveau.
ALTER ROLE db_datareader ADD MEMBER Ben;
GO
B. Alle database-principals weergeven die lid zijn van een rol op databaseniveau
Met de volgende instructie worden alle leden van welke databaserol dan ook geretourneerd.
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