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:✅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, 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 USERsatsen 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 USERSID - 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 [' + @group_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.
- För närvarande är den enda anslutningsprincip som stöds för SQL-databasen i Microsoft Fabric standard. Mer information finns i Anslutningsprincip.
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