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:
- SQL-verktyg som stöder Microsoft Entra-autentisering, inklusive SQL Server Management Studio och mssql-tillägget med Visual Studio Code.
- Program som använder SQL-klientdrivrutiner som stöder Microsoft Entra-autentisering, inklusive SqlClient, JDBC, ODBC och OLE DB.
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
, ActiveDirectoryServicePrincipal
eller 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.
Relaterat innehåll
- SKAPA ANVÄNDARE (Transact-SQL)
- ALTER USER (Transact-SQL)
- DROP-ANVÄNDARE (Transact-SQL)
- Skapa en databasanvändare
- Microsoft Entra-inloggningar och användare med icke-substantiv visningsnamn (förhandsversion)
- Auktorisering i SQL-databas i Microsoft Fabric
- Ansluta till din SQL-databas i Microsoft Fabric