Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-databas i Microsoft Fabric
För att enkelt hantera behörigheterna i dina databaser tillhandahåller SQL Server flera roller som är säkerhetsprincipaler som grupperar andra principer. De är som grupper i Windows-operativsystemet. Roller på databasnivå är databasomfattande i deras behörighetsomfång.
Om du vill lägga till och ta bort användare till en databasroll använder du ADD MEMBER alternativen och DROP MEMBER för ALTER ROLE-instruktionen. Analytics Platform System (PDW) och Azure Synapse Analytics stöder inte användning av ALTER ROLE. Använd de äldre procedurerna sp_addrolemember och sp_droprolemember i stället.
Det finns två typer av roller på databasnivå: fasta databasroller som är fördefinierade i databasen och användardefinierade databasroller som du kan skapa.
Fasta databasroller definieras på databasnivå och finns i varje databas. Medlemmar i db_owner databasrollen kan hantera fast databasrollmedlemskap. Det finns också vissa databasroller för särskilda ändamål i msdb databasen.
Du kan lägga till valfritt databaskonto och andra SQL Server-roller i roller på databasnivå.
Tip
Lägg inte till användardefinierade databasroller som medlemmar i fasta roller. Detta kan möjliggöra oavsiktlig eskalering av privilegier.
Behörigheterna för användardefinierade databasroller kan anpassas med hjälp av uttrycken GRANT, DENY och REVOKE . Mer information finns i Behörigheter (databasmotor).
En lista över alla behörigheter finns i affischen Databasmotorbehörigheter . Behörigheter på servernivå kan inte beviljas till databasroller. Inloggningar och andra huvudnamn på servernivå (till exempel serverroller) kan inte läggas till i databasroller. För säkerhet på servernivå i SQL Server använder du serverroller i stället. Behörigheter på servernivå kan inte beviljas via roller i Azure SQL Database och Azure Synapse Analytics.
Fasta databasroller
I följande tabell visas de fasta databasrollerna och deras funktioner. Dessa roller finns i alla databaser. Förutom den offentliga databasrollen kan behörigheterna som tilldelats till de fasta databasrollerna inte ändras.
| Fastställd databasrollnamn | Description |
|---|---|
| db_owner | Medlemmar i db_owner fasta databasrollen kan utföra alla konfigurations- och underhållsaktiviteter på databasen och kan även DROP databasen i SQL Server. (I SQL Database och Azure Synapse kräver vissa underhållsaktiviteter behörigheter på servernivå och kan inte utföras av db_owners.) |
| db_securityadmin | Medlemmar i db_securityadmin fast databasroll kan ändra rollmedlemskap endast för anpassade roller och hantera behörigheter. Medlemmar i den här rollen kan potentiellt höja sina privilegier och deras åtgärder bör övervakas. |
| db_accessadmin | Medlemmar i db_accessadmin fast databasroll kan lägga till eller ta bort åtkomst till databasen för Windows-inloggningar, Windows-grupper och SQL Server-inloggningar. |
| db_backupoperator | Medlemmar i den db_backupoperator fasta databasrollen kan säkerhetskopiera databasen. |
| db_ddladmin | Medlemmar i db_ddladmin fast databasroll kan köra valfritt DDL-kommando (Data Definition Language) i en databas. Medlemmar i den här rollen kan potentiellt höja sina privilegier genom att manipulera kod som kan köras under hög behörighet och deras åtgärder bör övervakas. |
| db_datawriter | Medlemmar i den db_datawriter fasta databasrollen kan lägga till, ta bort eller ändra data i alla användartabeller. I de flesta fall kombineras den här rollen med db_datareader medlemskap för att tillåta läsning av de data som ska ändras. |
| db_datareader | Medlemmar i db_datareader fast databasroll kan läsa alla data från alla användartabeller och vyer. Användarobjekt kan finnas i valfritt schema utom sys och INFORMATION_SCHEMA. |
| db_denydatawriter | Medlemmar i db_denydatawriter fast databasroll kan inte lägga till, ändra eller ta bort data i användartabellerna i en databas. |
| db_denydatareader | Medlemmar i db_denydatareader fast databasroll kan inte läsa några data från användartabeller och vyer i en databas. Medlemmar i den här rollen kan inte heller läsa metadata om databasen och dess objekt, till exempel visa systemvyer. |
Behörigheterna som tilldelats till de fasta databasrollerna kan inte ändras. Alla roller (inklusive public rollen) har CONNECT-behörigheter. Följande bild visar de behörigheter som tilldelats till de fasta databasrollerna:
| Rollnamn | Permissions |
|---|---|
| db_owner | KONTROLLDATABAS: Har alla behörigheter i databasen. |
| db_securityadmin | ÄNDRA VILKEN PROGRAMROLL SOM HELST SKAPA SCHEMA ÄNDRA VILKEN ROLL SOM HELST Visa definition |
| db_accessadmin | ÄNDRA ALLA ANVÄNDARE SKAPA SCHEMA SKAPA ANVÄNDARE |
| db_backupoperator | SÄKERHETSKOPIERINGSDATABAS SÄKERHETSKOPIERINGSLOGG CHECKPOINT |
| db_ddladmin | ÄNDRA ALLA SAMMANSÄTTNINGAR ÄNDRA ASYMMETRISK NYCKEL ÄNDRA ALLA CERTIFIKAT ÄNDRA ALLA KONTRAKT ÄNDRA VALFRI DATABAS-DDL-UTLÖSARE ÄNDRA EVENTUELLA DATABASHÄNDELSEMEDDELANDEN ÄNDRA ALLA DATARYMDER ÄNDRA ALLA EXTERNA BIBLIOTEK ÄNDRA ALLA FULLTEXTKATALOGER ÄNDRA VALFRI MEDDELANDETYP ÄNDRA ALLA FJÄRRTJÄNSTBINDNINGAR ÄNDRA VALFRI VÄG ÄNDRA VALFRITT SCHEMA ÄNDRA ALLA TJÄNSTER ÄNDRA EN SYMMETRISK NYCKEL CHECKPOINT SKAPA AGGREGERING SKAPA SAMMANSÄTTNING SKAPA ASYMMETRISK NYCKEL SKAPA CERTIFIKAT SKAPA KONTRAKT SKAPA HÄNDELSEMEDDELANDE FÖR DATABAS-DDL SKAPA STANDARD SKAPA EXTERNT BIBLIOTEK SKAPA FULLTEXTKATALOG SKAPA FUNKTION SKAPA MEDDELANDETYP LAGRA PROCEDUR SKAPA KÖ SKAPA FJÄRRTJÄNSTBINDNING SKAPA VÄG SKAPA REGEL SKAPA SCHEMA SKAPA TJÄNST SKAPA SYMMETRISK NYCKEL SKAPA SYNONYM CREATE TABLE SKAPA TYP SKAPA VY SKAPA XML-SCHEMASAMLING REFERENSER Gäller för: SQL Server 2019 och senare ÄNDRA ALLA EXTERNA SPRÅK SKAPA EXTERNT SPRÅK Gäller för: SQL Server 2022 och senare ÄNDRA ALLA EXTERNA DATAKÄLLOR ÄNDRA VILKET SOM HELST EXTERNT FILFORMAT ÄNDRA ALLA EXTERNA JOBB ÄNDRA EVENTUELL EXTERN STRÖM ALTER LEDGER AKTIVERA HUVUDBOK |
| db_datareader | BEVILJA SELECT PÅ DATABAS::<database-name> |
| db_denydatareader | NEKA SELECT PÅ DATABAS::<database-name> |
| db_datawriter | BEVILJA INSERT PÅ DATABASEN::<database-name>BEVILJA UPPDATERING AV DATABASEN:: <database-name>TILLÅT RADERING I DATABASEN:: <database-name> |
| db_denydatawriter | NEKA INSERT I DATABASEN::<database-name>NEKA UPPDATERING PÅ DATABASEN:: <database-name>NEKA BORTTAGNING I DATABASEN:: <database-name> |
| public | Det finns inga behörigheter på databasnivå som ingår i den offentliga databasrollen. Vissa databasbehörigheter finns dock som standard. Mer specifikt KAN DU VISA VALFRI DEFINITION AV KOLUMNKRYPTERINGSNYCKEL, VISA VALFRI KOLUMNHUVUDNYCKELDEFINITION OCH VÄLJ behörighet för många enskilda systemtabeller. Dessa behörigheter kan återkallas. |
Specialroller för Azure SQL Database och Azure Synapse
Dessa databasroller finns bara i den virtuella master databasen. Deras behörigheter är begränsade till åtgärder som utförs i master. Endast databasanvändare i master kan läggas till i dessa roller. Inloggningar kan inte läggas till i dessa roller, men användare kan skapas baserat på inloggningar och sedan kan dessa användare läggas till i rollerna. Databasanvändare i master kan också läggas till i dessa roller. Begränsade databasanvändare som lagts till i rollen dbmanager i master kan inte användas för att skapa nya databaser.
| Rollnamn | Description |
|---|---|
| dbmanager | Kan skapa och ta bort databaser. En medlem i rollen dbmanager som skapar en databas blir ägare till databasen, vilket gör att användaren kan ansluta till databasen som dbo-användare. Dbo-användaren har alla databasbehörigheter i databasen. Medlemmar i dbmanager-rollen har inte nödvändigtvis behörighet att komma åt databaser som de inte äger. |
| db_exporter | Medlemmar i den db_exporter fasta databasrollen kan utföra alla dataexportaktiviteter. Behörigheter som beviljas via den här rollen är CREATE TABLE, ALTER ANY SCHEMA, ALTER ANY EXTERNAL DATA SOURCE, ALTER ANY EXTERNAL FILE FORMAT.Gäller för: Dedikerade SQL-pooler i Azure Synapse Analytics (tidigare SQL DW) |
| loginmanager | Kan skapa och ta bort inloggningar i den virtuella master databasen. |
Note
Huvudkontot på servernivå och Microsoft Entra-administratören (om det är konfigurerat) har alla behörigheter i SQL Database och Azure Synapse Analytics utan att behöva vara medlemmar i några roller. Mer information finns i Auktorisera databasåtkomst till SQL Database, SQL Managed Instance och Azure Synapse Analytics.
Vissa databasroller gäller inte för Azure SQL eller Azure Synapse:
db_backupoperator är inte tillämpligt i Azure SQL Database (inte Azure SQL Managed Instance) och Azure Synapse Analytics serverlös pool eftersom T-SQL-kommandon för säkerhetskopiering och återställning inte är tillgängliga.
db_datawriter och db_denydatawriter gäller inte för serverlösa Azure Synapse Analytics eftersom de bara läser externa data.
Roller i msdb-databasen
Databasen msdb innehåller de specialroller som visas i följande tabell.
msdb rollnamn |
Description |
|---|---|
|
db_ssisadmin db_ssisoperator db_ssisltduser |
Medlemmar i dessa databasroller kan administrera och använda SSIS. Instanser av SQL Server som uppgraderas från en tidigare version kan innehålla en äldre version av rollen som namngavs med hjälp av Data Transformation Services (DTS) i stället för SSIS. Mer information finns i Integration Services Roles (SSIS Service). |
|
dc_admin dc_operator dc_proxy |
Medlemmar i dessa databasroller kan administrera och använda datainsamlaren. Mer information finns i Datainsamling. |
| PolicyAdministratorRoll | Medlemmar i databasrollen db_ PolicyAdministratorRole kan utföra alla konfigurations- och underhållsaktiviteter på principbaserade hanteringsprinciper och villkor. Mer information finns i Administrera servrar med hjälp av principbaserad hantering. |
|
ServerGroupAdministratorRole ServerGroupReaderRole |
Medlemmar i dessa databasroller kan administrera och använda registrerade servergrupper. |
| dbm_monitor | Skapades i msdb-databasen när den första databasen är registrerad i Övervakaren för databasspegling.
Den dbm_monitor rollen har inga medlemmar förrän en systemadministratör tilldelar användare rollen. |
Medlemmar i db_ssisadmin roll och dc_admin roll kan kanske höja sina privilegier till sysadmin. Den här behörighetshöjningen kan inträffa eftersom dessa roller kan ändra Integration Services-paket och Integration Services-paket kan köras av SQL Server med hjälp av säkerhetskontexten sysadmin för SQL Server Agent. Om du vill skydda dig mot den här behörighetshöjningen när du kör underhållsplaner, datainsamlingsuppsättningar och andra Integration Services-paket konfigurerar du SQL Server Agent-jobb som kör paket för att använda ett proxykonto med begränsad behörighet eller bara lägga till sysadmin medlemmar i db_ssisadmin- och dc_admin-rollerna.
Arbeta med roller på databasnivå
I följande tabell beskrivs kommandon, vyer och funktioner för att arbeta med roller på databasnivå.
| Feature | Type | Description |
|---|---|---|
| sp_helpdbfixedrole | Metadata | Returnerar en lista över de fasta databasrollerna. |
| sp_dbfixedrolepermission | Metadata | Visar behörigheterna för en fast databasroll. |
| sp_helprole | Metadata | Returnerar information om rollerna i den aktuella databasen. |
| sp_helprolemember | Metadata | Returnerar information om medlemmarna i en roll i den aktuella databasen. |
| sys.database_role_members | Metadata | Returnerar en rad för varje medlem i varje databasroll. |
| IS_MEMBER | Metadata | Anger om den aktuella användaren är medlem i den angivna Microsoft Windows-gruppen, Microsoft Entra-gruppen eller Microsoft SQL Server-databasrollen. |
| SKAPA ROLL | Command | Skapar en ny databasroll i den aktuella databasen. |
| ÄNDRA ROLL | Command | Ändrar namnet eller medlemskapet för en databasroll. |
| SLÄPP ROLL | Command | Tar bort en roll från databasen. |
| sp_addrole | Command | Skapar en ny databasroll i den aktuella databasen. |
| sp_droprole | Command | Tar bort en databasroll från den aktuella databasen. |
| sp_addrolemember | Command | Lägger till en databasanvändare, databasroll, Windows-inloggning eller Windows-grupp till en databasroll i den aktuella databasen. Alla plattformar utom Analytics Platform System (PDW) och Azure Synapse bör användas ALTER ROLE i stället. |
| sp_droprolemember | Command | Tar bort ett säkerhetskonto från en SQL Server-roll i den aktuella databasen. Alla plattformar utom Analytics Platform System (PDW) och Azure Synapse bör användas ALTER ROLE i stället. |
| GRANT | Permissions | Lägger till behörighet till en roll. |
| DENY | Permissions | Nekar behörighet till en roll. |
| REVOKE | Permissions | Tar bort tidigare beviljade eller nekade behörigheter. |
Offentlig databasroll
Varje databasanvändare tillhör den offentliga databasrollen. När en användare inte har beviljats eller nekats specifika behörigheter för ett skyddsbart objekt ärver användaren de behörigheter som beviljats till allmänheten för objektet. Databasanvändare kan inte tas bort från den offentliga rollen.
Examples
Exemplen i det här avsnittet visar hur du arbetar med roller på databasnivå.
A. Lägga till en användare i en databasnivåroll
I följande exempel läggs användaren "Ben" till i rollen db_datareaderpå den fasta databasnivån .
ALTER ROLE db_datareader ADD MEMBER Ben;
GO
B. Lista alla databasprincipaler som är medlemmar i en databasroll på databasnivå
Följande instruktion returnerar alla medlemmar i valfri databasroll.
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