Dela via


Autentisering i SQL-databas i Microsoft Fabric

Gäller för:SQL-databas i Microsoft Fabric

I den här artikeln beskrivs autentisering för SQL-databaser.

Precis som andra Typer av Microsoft Fabric-objekt förlitar sig SQL-databaser på Microsoft Entra-autentisering.

Om du vill autentisera till en SQL-databas måste en Microsoft Entra-användare, ett huvudnamn för tjänsten eller deras grupp ha behörigheten Läsa objekt för databasen i Infrastrukturresurser. Information om hur du beviljar en Microsoft Entra-identitet åtkomst till en Infrastruktur-arbetsyta eller en specifik databas finns i Åtkomstkontroller för infrastrukturresurser.

Information om hur du hittar anslutningssträng till DIN SQL-databas i Infrastruktur finns i Ansluta till din SQL-databas i Microsoft Fabric.

Kommentar

Om du vill göra det möjligt för tjänstens huvudnamn att ansluta till Infrastrukturresurser och TILL SQL-databaser måste du också aktivera tjänstens huvudnamn kan använda infrastruktur-API:er Fabric-klientinställningen. Information om hur du aktiverar klientinställningar finns i Inställningar för infrastrukturklientorganisation.

Ansluta till en SQL-databas med Microsoft Entra-autentisering

Du kan ansluta till en databas med Hjälp av Microsoft Entra-autentisering med:

Program och verktyg måste uppgradera drivrutiner till versioner som stöder Microsoft Entra-autentisering och lägga till nyckelordet autentiseringsläge i sql-anslutningssträng, till exempel ActiveDirectoryInteractive, ActiveDirectoryServicePrincipaleller ActiveDirectoryPassword.

Skapa databasanvändare för Microsoft Entra-identiteter

Om du planerar att konfigurera SQL-åtkomstkontroller med Transact-SQL måste du först skapa databasanvändare som motsvarar dina Microsoft Entra-identiteter – användare, tjänsthuvudnamn eller deras grupper – med CREATE USER (Transact-SQL).

Det krävs inte att du skapar databasanvändare om du använder åtkomstkontroller för infrastrukturresurser (arbetsyteroller eller objektbehörigheter). Du behöver inte heller skapa användare när du hanterar SQL-databasnivåroller från Fabric-portalen – portalen skapar automatiskt användare när det behövs.

Skapa databasanvändare när de är anslutna som Microsoft Entra-användare

När du är ansluten till databasen som Microsoft Entra-användare bör du använda CREATE USER satsen FROM EXTERNAL PROVIDER för att skapa användare för Microsoft Entra-huvudkonton. FROM EXTERNAL PROVIDER validerar det angivna huvudnamnet med Microsoft Entra, hämtar huvudidentifieraren (användarens eller gruppens objekt-ID, program-ID eller klient-ID) och lagrar identifieraren som användarens säkerhetsidentifierare (SID) i SQL-metadata. Du måste vara medlem i rollen Katalogläsare i Microsoft Entra när du FROM EXTERNAL PROVIDER använder -satsen. Följande exempel på T-SQL-skript används FROM EXTERNAL PROVIDER för att skapa en användare baserat på en Microsoft Entra-användare, ett huvudnamn för tjänsten i Microsoft Entra eller en grupp i Microsoft Entra.

-- Create a user for a Microsoft Entra user
CREATE USER [alice@contoso.com] FROM EXTERNAL PROVIDER;
-- Create a user for a service principal in Microsoft Entra
CREATE USER [HRApp] FROM EXTERNAL PROVIDER;
-- Create a user for a group in Microsoft Entra
CREATE USER [HR] FROM EXTERNAL PROVIDER; 

Skapa databasanvändare när de är anslutna som microsoft Entra-tjänstens huvudnamn

När ett program är anslutet till en databas med ett huvudnamn för tjänsten måste programmet utfärda CREATE USER SID - och TYPE-satser för att skapa användare för Microsoft Entra-huvudkonton. Det angivna huvudnamnet verifieras inte i Microsoft Entra. Det är ett ansvar för programmet (programutvecklaren) att ange ett giltigt namn och ett giltigt SID och en användarobjekttyp.

Om det angivna huvudkontot är en användare eller grupp i Microsoft Entra måste SID vara ett objekt-ID för användaren eller gruppen i Microsoft Entra. Om det angivna huvudnamnet är ett huvudnamn för tjänsten i Microsoft Entra måste SID vara ett program-ID (klient-ID) för tjänstens huvudnamn i Microsoft Entra. Objekt-ID:t och program-ID:t (klient-ID:t) som hämtats från Microsoft Entra måste konverteras till binärt(16).

Argumentets TYPE värde måste vara:

  • E – om det angivna Microsoft Entra-huvudnamnet är en användare eller ett huvudnamn för tjänsten.
  • X – om angivet Microsoft Entra-huvudnamn är en grupp.

Följande T-SQL-exempelskript skapar en databasanvändare för Microsoft Entra-användaren med namnet bob@contoso.com, och anger SID för den nya användaren till objekt-ID för Microsoft Entra-användaren. Den unika identifieraren för användarens objekt-ID konverteras och sammanfogas sedan till en CREATE USER instruktion. Ersätt <unique identifier sid> med användarens objekt-ID i Microsoft Entra.

DECLARE @principal_name SYSNAME = 'bob@contoso.com';
DECLARE @objectId UNIQUEIDENTIFIER = '<unique identifier sid>'; -- user's object ID in Microsoft Entra

-- Convert the guid to the right type
DECLARE @castObjectId NVARCHAR(MAX) = CONVERT(VARCHAR(MAX), CONVERT (VARBINARY(16), @objectId), 1);

-- Construct command: CREATE USER [@principal_name] WITH SID = @castObjectId, TYPE = E;
DECLARE @cmd NVARCHAR(MAX) = N'CREATE USER [' + @principal_name + '] WITH SID = ' + @castObjectId + ', TYPE = E;'
EXEC (@cmd);

I följande exempel skapas en databasanvändare för Tjänstens huvudnamn i Microsoft Entra, med namnet HRApp, som anger SID för den nya användaren till klient-ID för tjänstens huvudnamn i Microsoft Entra.

DECLARE @principal_name SYSNAME = 'HRApp';
DECLARE @clientId UNIQUEIDENTIFIER = '<unique identifier sid>'; -- principal's client ID in Microsoft Entra

-- Convert the guid to the right type
DECLARE @castClientId NVARCHAR(MAX) = CONVERT(VARCHAR(MAX), CONVERT (VARBINARY(16), @clientId), 1);

-- Construct command: CREATE USER [@principal_name] WITH SID = @castClientId, TYPE = E;
DECLARE @cmd NVARCHAR(MAX) = N'CREATE USER [' + @principal_name + '] WITH SID = ' + @castClientId + ', TYPE = E;'
EXEC (@cmd);

I följande exempel skapas en databasanvändare för Microsoft Entra-gruppen med namnet HR, som anger SID för den nya användaren till objekt-ID för gruppen.

DECLARE @group_name SYSNAME = 'HR';
DECLARE @objectId UNIQUEIDENTIFIER = '<unique identifier sid>'; -- principal's object ID in Microsoft Entra

-- Convert the guid to the right type
DECLARE @castObjectId NVARCHAR(MAX) = CONVERT(VARCHAR(MAX), CONVERT (VARBINARY(16), @objectId), 1);

-- Construct command: CREATE USER [@groupName] WITH SID = @castObjectId, TYPE = X;
DECLARE @cmd NVARCHAR(MAX) = N'CREATE USER [' + @principal_name + '] WITH SID = ' + @castObjectId + ', TYPE = X;'
EXEC (@cmd);

Begränsningar

  • Microsoft Entra ID är den enda identitetsproviderns SQL-databas i Fabric som har stöd för. Mer specifikt stöds inte SQL-autentisering.
  • Inloggningar (serverhuvudnamn) stöds inte.