Auktorisera databasåtkomst till SQL Database, SQL Managed Instance och Azure Synapse Analytics
GÄLLER FÖR:
Azure SQL Database Azure SQL Managed Instance
Azure Synapse Analytics
I den här artikeln får du lära dig mer om:
- Alternativ för att konfigurera Azure SQL Database, Azure SQL Managed Instance och Azure Synapse Analytics så att användarna kan utföra administrativa uppgifter och komma åt data som lagras i dessa databaser.
- Konfigurationen för åtkomst och auktorisering när du först har skapat en ny server.
- Hur du lägger till inloggningar och användarkonton i huvuddatabasen och användarkonton och sedan beviljar dessa konton administratörsbehörigheter.
- Hur du lägger till användarkonton i användardatabaser, antingen associerade med inloggningar eller som inneslutna användarkonton.
- Konfigurera användarkonton med behörigheter i användardatabaser med hjälp av databasroller och explicita behörigheter.
Viktigt
Databaser i Azure SQL Database, Azure SQL Managed Instance och Azure Synapse kallas gemensamt i resten av den här artikeln databaser, och servern refererar till den server som hanterar databaser för Azure SQL Database och Azure Synapse.
Autentisering och auktorisering
Autentisering är processen att bevisa att användaren är den de utger sig för att vara. En användare ansluter till en databas med ett användarkonto. När en användare försöker ansluta till en databas anger de ett användarkonto och autentiseringsinformation. Användaren autentiseras med någon av följande två autentiseringsmetoder:
-
Med den här autentiseringsmetoden skickar användaren ett användarkontonamn och tillhörande lösenord för att upprätta en anslutning. Det här lösenordet lagras i huvuddatabasen för användarkonton som är länkade till en inloggning eller lagras i databasen som innehåller användarkontona som inte är länkade till en inloggning.
Azure Active Directory-autentisering
Med den här autentiseringsmetoden skickar användaren ett användarkontonamn och begär att tjänsten använder autentiseringsinformationen som lagras i Azure Active Directory (Azure AD).
Inloggningar och användare: Ett användarkonto i en databas kan associeras med en inloggning som finns lagrad i huvuddatabasen eller så kan det vara ett användarnamn som lagras i en enskild databas.
- En inloggning är ett enskilt konto i huvuddatabasen, som ett användarkonto i en eller flera databaser kan kopplas till. Med en inloggning lagras autentiseringsuppgifterna för användarkontot med inloggningen.
- Ett användarkonto är ett enskilt konto i en databas som kan vara, men som inte måste vara, kopplat till en inloggning. Med ett användarkonto som inte är länkat till en inloggning lagras autentiseringsinformation med användarkontot.
Auktorisering för att komma åt data och utföra olika åtgärder hanteras med hjälp av databasroller och explicita behörigheter. Auktorisering avser de behörigheter som tilldelats en användare och avgör vad användaren får göra. Auktoriseringen styrs av ditt användarkontos databasrollmedlemskap och behörigheter på objektnivå. Ett bra tips är att du ska ge användare så få behörigheter som möjligt.
Befintliga inloggningar och användarkonton när du har skapat en ny databas
När du först distribuerar Azure SQL anger du en administratörsinloggning och ett associerat lösenord för inloggningen. Det här administrativa kontot kallas serveradministratör. Följande konfiguration av inloggningar och användare i huvud- och användardatabaserna sker under distributionen:
- En SQL inloggning med administratörsbehörighet skapas med det inloggningsnamn som du har angett. En inloggning är ett enskilt användarkonto för att logga in på SQL Database, SQL Managed Instance och Azure Synapse.
- Den här inloggningen beviljas fullständiga administrativa behörigheter för alla databaser som ett huvudnamn på servernivå. Inloggningen har alla tillgängliga behörigheter och kan inte begränsas. I en SQL Managed Instance läggs den här inloggningen till i den fasta serverrollen sysadmin (den här rollen finns inte i Azure SQL Database).
- Ett användarkonto med namnet skapas för den här
dboinloggningen i varje användardatabas. Dbo-användaren har alla databasbehörigheter i databasen och mappas till dendb_ownerfasta databasrollen. Ytterligare fasta databasroller beskrivs senare i den här artikeln.
Om du vill identifiera administratörskontona för en databas öppnar du Azure Portal och går till fliken Egenskaper för servern eller den hanterade instansen.


Viktigt
Inloggningsnamnet för administratören kan inte ändras när det har skapats. Om du vill återställa lösenordet för serveradministratören går du till Azure Portal, klickar SQL servrar, väljer servern i listan och klickar sedan på Återställ lösenord. Om du vill återställa lösenordet för SQL Managed Instance går du till Azure Portal, klickar på instansen och klickar på Återställ lösenord. Du kan också använda PowerShell eller Azure CLI.
Skapa ytterligare inloggningar och användare som har administratörsbehörighet
I det här läget är din server eller hanterade instans endast konfigurerad för åtkomst med hjälp av SQL inloggning och användarkonto. Om du vill skapa ytterligare inloggningar med fullständig eller partiell administratörsbehörighet har du följande alternativ (beroende på ditt distributionsläge):
Skapa ett Azure Active Directory administratörskonto med fullständig administratörsbehörighet
Aktivera Azure Active Directory och skapa en Azure AD-administratörsinloggning. Ett Azure Active Directory-konto kan konfigureras som administratör för Azure SQL distribution med fullständig administratörsbehörighet. Det här kontot kan vara antingen ett enskilt konto eller ett säkerhetsgruppkonto. En Azure AD-administratör måste konfigureras om du vill använda Azure AD-konton för att ansluta till SQL Database, SQL Managed Instance eller Azure Synapse. Detaljerad information om hur du aktiverar Azure AD-autentisering för alla Azure SQL-distributionstyper finns i följande artiklar:
I SQL Managed Instance skapar du SQL inloggningar med fullständig administratörsbehörighet
- Skapa ytterligare en SQL-inloggning i huvuddatabasen.
- Lägg till inloggningen till den fasta serverrollen sysadmin med instruktionen ALTER SERVER ROLE. Den här inloggningen har fullständig administratörsbehörighet.
- Du kan också skapa en Azure AD-inloggning med syntaxen CREATE LOGIN.
I SQL Database skapar du SQL-inloggningar med begränsad administrativ behörighet
- Skapa ytterligare en SQL-inloggning i huvuddatabasen.
- Skapa ett användarkonto i huvuddatabasen som är associerat med den nya inloggningen.
- Lägg till användarkontot till , rollen eller båda i databasen med alter role-instruktionen (för att Azure Synapse använder du
dbmanagerloginmanagersp_addrolemembermasterinstruktionen).
Anteckning
dbmanager-loginmanageroch -roller gäller inte för SQL Managed Instance-distributioner.Medlemmar i dessa särskilda huvuddatabasroller för Azure SQL Database behörighet att skapa och hantera databaser eller skapa och hantera inloggningar. I databaser som skapats av en användare som är medlem i rollen mappas medlemmen till den fasta databasrollen och kan logga in på och hantera databasen med
dbmanagerdb_ownerdboanvändarkontot. Dessa roller har inga explicita behörigheter utanför huvuddatabasen.Viktigt
Du kan inte skapa ytterligare en SQL inloggning med fullständig administratörsbehörighet i SQL Database.
Skapa konton för icke-administratörsanvändare
Du kan skapa konton för icke-administrativa användare med någon av två metoder:
Skapa en inloggning
Skapa en SQL inloggning i huvuddatabasen. Skapa sedan ett användarkonto i varje databas som användaren behöver åtkomst till och associera användarkontot med den inloggningen. Den här metoden är att föredra när användaren måste ha åtkomst till flera databaser och du vill att lösenorden ska vara synkroniserade. Den här metoden har dock komplexitet när den används med geo-replikering eftersom inloggningen måste skapas på både den primära servern och de sekundära servrarna. Mer information finns i Konfigurera och hantera Azure SQL Database för geo-återställning eller redundans.
Skapa ett användarkonto
Skapa ett användarkonto i databasen som en användare behöver åtkomst till (kallas även innesluten användare).
- Med SQL Database kan du alltid skapa den här typen av användarkonto.
- Med SQL Managed Instance som stöder Azure AD-serverhuvudkontonkan du skapa användarkonton för att autentisera till den hanterade SQL-instansen utan att kräva att databasanvändare skapas som en innesluten databasanvändare.
Med den här metoden lagras informationen om användarautentisering i varje databas och replikeras automatiskt till geo-replikerade databaser. Men om samma konto finns i flera databaser och du använder Azure SQL-autentisering måste du hålla lösenorden synkroniserade manuellt. Om en användare dessutom har ett konto i olika databaser med olika lösenord kan det bli ett problem att komma ihåg dessa lösenord.
Viktigt
Om du vill skapa inneslutna användare som är mappade till Azure AD-identiteter måste du vara inloggad med ett Azure AD-konto som är en administratör i databasen i Azure SQL Database. I SQL Managed Instance kan en SQL inloggning med sysadmin behörigheter också skapa en Azure AD-inloggning eller -användare.
Exempel som visar hur du skapar inloggningar och användare finns i:
- Skapa inloggning för Azure SQL Database
- Skapa inloggning för Azure SQL Managed Instance
- Skapa inloggning för Azure Synapse
- Skapa användare
- Skapa inneslutna Azure AD-användare
Tips
En säkerhetskurs som omfattar att skapa användare i Azure SQL Database finns i Självstudie: Skydda Azure SQL Database.
Använda fasta och anpassade databasroller
När du har skapat ett användarkonto i en databas, antingen baserat på en inloggning eller som en innesluten användare, kan du ge användaren behörighet att utföra olika åtgärder och komma åt data i en viss databas. Du kan använda följande metoder för att auktorisera åtkomst:
Databasroller har åtgärdats
Lägg till användarkontot i en fast databasroll. Det finns 9 fasta databasroller, var och en med en definierad uppsättning behörigheter. De vanligaste fasta databasrollerna är: db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter och db_denydatareader. db_owner används ofta för att endast ge fullständig behörighet till några användare. De andra fasta databasrollerna är användbara för att snabbt få en enkel databas i utveckling, men de rekommenderas inte för de flesta produktionsdatabaserna. Till exempel ger den fasta db_datareader databasrollen läsbehörighet till varje tabell i databasen, vilket är mer än vad som är absolut nödvändigt.
Så här lägger du till en användare till en fast databasroll:
- I Azure SQL Database använder du ALTER ROLE-instruktionen. Exempel finns i ALTER ROLE-exempel
- Azure Synapse använder du sp_addrolemember-instruktionen. Exempel finns i sp_addrolemember exempel.
Anpassad databasroll
Skapa en anpassad databasroll med instruktionen CREATE ROLE. Med en anpassad roll kan du skapa egna användardefinierade databasroller och noggrant bevilja varje roll minsta nödvändiga behörighet för företagets behov. Du kan sedan lägga till användare i den anpassade rollen. När en användare är medlem i flera roller sammanställs behörigheterna för alla.
Bevilja behörigheter direkt
Bevilja användarkontot behörighet direkt. Det finns över 100 behörigheter som individuellt kan beviljas eller nekas i SQL Database. Många av de här behörigheterna är kapslade. Till exempel inkluderar
UPDATE-behörighet på ett schemaUPDATE-behörighet för alla tabeller i schemat. Som i de flesta andra behörighetssystem åsidosätter ett nekande av en behörighet en beviljad. På grund av den kapslade karaktären och antalet behörigheter kan det krävas noggranna studier för att designa ett behörighetssystem som korrekt skyddar databasen. Börja med listan över behörigheter på Behörigheter (Databasmotor) och granska den stora bilden med behörigheter.
Använda grupper
Effektiv åtkomsthantering använder behörigheter som tilldelats till Active Directory-säkerhetsgrupper och fasta eller anpassade roller i stället för till enskilda användare.
När du Azure Active Directory autentisering ska du placera Azure Active Directory användare i en Azure Active Directory säkerhetsgrupp. Skapa en oberoende databasanvändare för gruppen. Lägg till en eller flera databasanvändare som en medlem i anpassade eller inbyggda databasroller med de specifika behörigheter som är lämpliga för den gruppen av användare.
När du SQL autentisering skapar du användare av inneslutna databaser i databasen. Placera en eller flera databasanvändare i en anpassad databasroll med specifika behörigheter som är lämpliga för den gruppen av användare.
Anteckning
Du kan också använda grupper för icke-inneslutna databasanvändare.
Du bör bekanta dig med följande funktioner som kan användas för att begränsa eller utöka behörigheter:
- Personifiering och modulsignering kan användas för att säkert höja behörigheter tillfälligt.
- Säkerhet på radnivå kan användas som en begränsning av vilka rader en användare kan komma åt.
- Datamaskning kan användas för att begränsa exponering av känsliga data.
- Lagrade procedurer kan användas för att begränsa de åtgärder som kan utföras i databasen.
Nästa steg
En översikt över alla säkerhetsfunktioner Azure SQL Database och SQL Managed Instance finns i Säkerhetsöversikt.