Anteckning
Å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:Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
I den här artikeln lär du dig mer om:
- Konfigurationsalternativ för Azure SQL Database, Azure SQL Managed Instance och Azure Synapse Analytics som gör det möjligt för användare att utföra administrativa uppgifter och komma åt data som lagras i dessa databaser.
- Konfiguration av åtkomst och auktorisering när en ny server har skapats.
- Så här lägger du till inloggningar och användarkonton
masteri databasen och beviljar sedan de här kontona administrativa behörigheter. - Så här lägger du 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 tillsammans för databaser i resten av den här artikeln, och servern refererar till den logiska server som hanterar databaser för Azure SQL Database och Azure Synapse.
Anmärkning
Microsoft Entra-ID kallades tidigare Azure Active Directory (Azure AD).
Autentisering och auktorisering
Autentisering är processen för att bevisa att användaren är den som de påstår sig vara. En användare ansluter till en databas med ett användarkonto. När en användare försöker ansluta till en databas tillhandahåller 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ändarnamn och tillhörande lösenord för kontot för att upprätta en anslutning. Det här lösenordet lagras i
masterdatabasen 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.Anmärkning
Azure SQL Database tillämpar endast lösenordskomplexitet för lösenordsprinciper. Information om lösenordsprincip i Azure SQL Managed Instance finns i Vanliga frågor och svar om Azure SQL Managed Instance.
Microsoft Entra-autentisering för Azure SQL
Med den här autentiseringsmetoden skickar användaren ett användarnamn och begär att tjänsten använder autentiseringsinformationen som lagras i Microsoft Entra-ID (tidigare Azure Active Directory).
Inloggningar och användare: Ett användarkonto i en databas kan associeras med en inloggning som lagras i master databasen eller kan vara ett användarnamn som lagras i en enskild databas.
- En inloggning är ett enskilt konto i
masterdatabasen, till vilket ett användarkonto i en eller flera databaser kan länkas. Med en inloggning lagras autentiseringsinformationen för användarkontot med inloggningen. - Ett användarkonto är ett enskilt konto i en databas som kan vara, men inte behöver vara, länkad till en inloggning. Med ett användarkonto som inte är länkat till en inloggning lagras autentiseringsinformationen med användarkontot.
Behörighet att komma åt data och utföra olika åtgärder hanteras med hjälp av databasroller och explicita behörigheter. Auktorisering refererar till de behörigheter som tilldelats en användare och avgör vad användaren får göra. Auktorisering styrs av användarkontots databasrollmedlemskap och behörigheter på objektnivå. Som bästa praxis bör du ge användarna de minsta behörigheter som krävs.
Befintliga inloggningar och användarkonton när du har skapat en ny databas
När du först distribuerar Azure SQL kan du ange ett inloggningsnamn och ett lösenord för en särskild typ av administrativ inloggning, serveradministratören. Följande konfiguration av inloggningar och användare i master användardatabaserna och sker under distributionen:
- En SQL-inloggning med administratörsbehörighet skapas med det inloggningsnamn som du angav. En inloggning är ett enskilt konto 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).
- När det här kontot loggar in på en databas matchas de med det särskilda användarkontot
dbo(användarkontot, som finns i varje användardatabas. Den dbo- användaren har alla databasbehörigheter i databasen och är medlem idb_ownerfast databasroll. Ytterligare fasta databasroller beskrivs senare i den här artikeln.
Om du vill identifiera serveradministratörskontot öppnar du Azure-portalen och går till fliken Egenskaper för den logiska servern eller den hanterade instansen:
Viktigt!
Namnet på serveradministratören konto kan inte ändras när det har skapats. Om du vill återställa lösenordet för serveradministratören går du till Azure-portalen, väljer SQL-servrar, väljer servern i listan och väljer sedan Återställ lösenord. Om du vill återställa lösenordet för SQL Managed Instance går du till Azure-portalen, väljer instansen och väljer Återställ lösenord. Du kan också använda PowerShell eller Azure CLI.
Skapa ytterligare inloggningar och användare med administratörsbehörighet
I det här läget är servern eller den hanterade instansen endast konfigurerad för åtkomst med hjälp av en enda SQL-inloggning och ett användarkonto. Om du vill skapa ytterligare inloggningar med fullständig eller partiell administrativ behörighet har du följande alternativ (beroende på distributionsläget):
Skapa ett Microsoft Entra-administratörskonto med fullständig administratörsbehörighet
Aktivera Microsoft Entra-autentisering och lägg till en Microsoft Entra-administratör. Ett Microsoft Entra-konto kan konfigureras som administratör för Azure SQL-distributionen med fullständig administrativ behörighet. Det här kontot kan vara antingen ett enskilt konto eller ett säkerhetsgruppskonto. En Microsoft Entra-administratörmåste konfigureras om du vill använda Microsoft Entra-konton för att ansluta till SQL Database, SQL Managed Instance eller Azure Synapse. Detaljerad information om hur du aktiverar Microsoft Entra-autentisering för alla Azure SQL-distributionstyper finns i följande artiklar:
I SQL Managed Instance skapar du SQL-inloggningar med fullständig administrativ behörighet
- Skapa ytterligare en SQL-inloggning i
masterdatabasen. - Lägg till inloggningen till den fasta serverrollen sysadmin med instruktionen ALTER SERVER ROLE . Den här inloggningen har fullständiga administrativa behörigheter.
- Du kan också skapa en Microsoft Entra-inloggning med syntaxen CREATE LOGIN .
Anmärkning
Rollerna
dbmanagerochloginmanagergäller inte distributioner av Azure SQL Managed Instance.- Skapa ytterligare en SQL-inloggning i
I SQL Database skapar du SQL-inloggningar med begränsad administrativ behörighet
- Skapa ytterligare en SQL-inloggning i
masterdatabasen. - Lägg till inloggningsrollerna
##MS_DatabaseManager##på ,##MS_LoginManager##och##MS_DatabaseConnector##servernivå med instruktionen ALTER SERVER ROLE .
Medlemmar i särskilda
masterdatabasroller för Azure SQL Database har behörighet att skapa och hantera databaser eller att skapa och hantera inloggningar. I databaser som skapats av en användare som är medlem i rollen mappas medlemmen till den fasta databasrollendb_owneroch kan logga in på och hantera databasen med hjälp avdbmanagerdboanvändarkontot. Dessa roller har inga explicita behörigheter utanförmasterdatabasen.Viktigt!
Du kan inte skapa ytterligare en SQL-inloggning med fullständig administrativ behörighet i Azure SQL Database. Endast serveradministratörskontot eller Microsoft Entra-administratörskontot (som kan vara en Microsoft Entra-grupp) kan lägga till eller ta bort andra inloggningar till eller från serverroller. Detta är specifikt för Azure SQL Database.
- Skapa ytterligare en SQL-inloggning i
I Azure Synapse-dedikerad SQL-pool skapar du SQL-inloggningar med begränsad administrativ behörighet
- Skapa ytterligare en SQL-inloggning i
masterdatabasen. - Skapa ett användarkonto i databasen som
masterär associerad med den nya inloggningen. - Lägg till användarkontot i
dbmanager, rollenloginmanagereller båda imaster-databasen genom att använda instruktionen sp_addrolemember.
- Skapa ytterligare en SQL-inloggning i
I en serverlös SQL-pool i Azure Synapse skapar du SQL-inloggningar med begränsad administrativ behörighet
- Skapa ytterligare en SQL-inloggning i
masterdatabasen. - Lägg till SQL-inloggningen till den fasta serverrollen sysadmin med instruktionen ALTER SERVER ROLE .
- Du kan också skapa en Microsoft Entra-inloggning med syntaxen CREATE LOGIN .
- Skapa ytterligare en SQL-inloggning i
Skapa konton för icke-administratörsanvändare
Du kan skapa konton för icke-administratörsanvändare med någon av två metoder:
Skapa ett konto
Skapa en SQL-inloggning i
masterdatabasen. 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 rekommenderas när användaren måste komma åt flera databaser och du vill att lösenorden ska synkroniseras. 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. För mer information, se Konfigurera och hantera säkerheten för Azure SQL Database vid geo-återställning eller säkerhetskopiering.Skapa ett användarkonto
Skapa ett användarkonto i databasen som en användare behöver åtkomst till (kallas även för en innesluten användare).
- Med SQL Database kan du alltid skapa den här typen av användarkonto.
- Med SQL Managed Instance som stöder Microsoft Entra-serverhuvudkonton kan du skapa användarkonton för att autentisera till SQL Managed Instance utan att kräva att databasanvändare skapas som en innesluten databasanvändare.
Med den här metoden lagras användarautentiseringsinformationen i varje databas och replikeras automatiskt till geo-replikerade databaser. Men om samma konto finns i flera databaser och du använder 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 mappas till Microsoft Entra-identiteter måste du vara inloggad med ett Microsoft Entra-konto i databasen i Azure SQL Database. I SQL Managed Instance kan en SQL-inloggning med sysadmin behörigheter också skapa en Microsoft Entra-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 Microsoft Entra-inneslutna användare
Tips/Råd
En säkerhetskurs som omfattar att skapa användare i Azure SQL Database finns i Självstudie: Skydda en databas i 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:
Fasta databasroller
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 bevilja fullständig behörighet till endast ett fåtal användare. De andra fasta databasrollerna är användbara för att snabbt få en enkel databas under utveckling, men rekommenderas inte för de flesta produktionsdatabaser. Till exempel ger den db_datareader fasta 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 i en fast databasroll:
- Använd instruktionen ALTER ROLE i Azure SQL Database och Azure Synapse serverlös SQL-pool. Exempel finns i ALTER ROLE-exempel
- I azure Synapse-dedikerad SQL-pool använder du instruktionen sp_addrolemember . För exempel, se exempel på sp_addrolemember.
Anpassad databasroll
Skapa en anpassad databasroll med hjälp av INSTRUKTIONEN SKAPA ROLL . Med en anpassad roll kan du skapa egna användardefinierade databasroller och noggrant ge varje roll de minsta behörigheter som krävs för verksamhetens behov. Du kan sedan lägga till användare i den anpassade rollen. När en användare är medlem i flera roller aggregerar de behörigheterna för dem alla.
Bevilja behörigheter direkt
Bevilja användarkontobehörighet direkt . Det finns över 100 behörigheter som kan beviljas individuellt eller nekas i SQL Database. Många av dessa behörigheter är kapslade. Behörigheten
UPDATEför ett schema innehåller till exempel behörighetenUPDATEför varje tabell i schemat. Precis som i de flesta behörighetssystem åsidosätter nekandet av en behörighet ett beviljande. På grund av den kapslade naturen och antalet behörigheter kan det ta noggranna studier för att utforma ett lämpligt behörighetssystem för att skydda databasen korrekt. Börja med listan över behörigheter på Behörigheter (databasmotor) och granska grafiken för affischstorleken för behörigheterna.
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 använder Microsoft Entra-autentisering placerar du Microsoft Entra-användare i en Microsoft Entra-säkerhetsgrupp. Skapa en innesluten databasanvändare för gruppen. Lägg till en eller flera databasanvändare som 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 använder SQL-autentisering skapar du oberoende databasanvändare 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.
Anmärkning
Du kan också använda grupper för icke-kontainerade databasanvändare.
Du bör bekanta dig med följande funktioner som kan användas för att begränsa eller höja behörigheter:
- Personifiering och modulsignering kan användas för att tillfälligt höja behörigheterna på ett säkert sätt.
- Row-Level Säkerhet kan användas för att begränsa vilka rader en användare kan komma åt.
- Dynamisk datamaskning kan användas för att begränsa exponeringen av känsliga data.
- Lagrade procedurer kan användas för att begränsa de åtgärder som kan vidtas i databasen.