Sdílet prostřednictvím


Ověřování v databázi SQL v Microsoft Fabric

Platí pro:SQL databázi v Microsoft Fabric

Tento článek vysvětluje ověřování pro databáze SQL.

Stejně jako jiné typy položek Microsoft Fabric využívají databáze SQL ověřování Microsoft Entra.

Aby bylo možné se úspěšně ověřit u databáze SQL, uživatel Microsoft Entra, instanční objekt služby (service principal), nebo jejich skupina musí mít oprávnění ke čtení pro databázi ve Fabric. Informace o tom, jak udělit identitě Microsoft Entra přístup k pracovnímu prostoru Fabricu nebo konkrétní databázi, najdete v tématu Řízení přístupu technologie Fabric.

Pokud chcete najít připojovací řetězec k databázi SQL ve Fabric, přečtěte si téma Připojení k databázi SQL v Microsoft Fabric.

Poznámka:

Pokud chcete povolit služebním principalům připojení k Fabric a k databázím SQL, musíte také povolit nastavení tenanta Služební principálové mohou používat Fabric API. Informace o povolení nastavení tenanta najdete v tématu Nastavení tenanta Fabric.

Připojení k databázi SQL pomocí ověřování Microsoft Entra

K databázi se můžete připojit pomocí ověřování Microsoft Entra pomocí:

Aplikace a nástroje musí upgradovat ovladače na verze, které podporují ověřování Microsoft Entra, a do řetězce připojení SQL přidat klíčové slovo režimu ověřování, například ActiveDirectoryInteractive, ActiveDirectoryServicePrincipal nebo ActiveDirectoryPassword.

Vytvořte uživatele databáze pro Microsoft Entra identity

Pokud plánujete konfigurovat řízení přístupu SQL pomocí Transact-SQL, Nejdřív musíte vytvořit uživatele database odpovídající vašim identitám Microsoft Entra – uživatelům, instančním objektům nebo jejich skupinám – pomocí CREATE USER (Transact-SQL).

Vytváření uživatelů databáze se nevyžaduje, pokud používáte řízení přístupu Fabric (role pracovního prostoru nebo oprávnění položky). Při správě rolí na úrovni databáze SQL z portálu Fabric nemusíte vytvářet uživatele – portál v případě potřeby uživatele automaticky vytvoří.

Vytvoření uživatelů databáze při připojení jako uživatele Microsoft Entra

Pokud jste připojeni k databázi jako uživatel Microsoft Entra, měli byste použít CREATE USER pomocí klauzule FROM EXTERNAL PROVIDER k vytvoření uživatelů pro Microsoft Entra principály. FROM EXTERNAL PROVIDER ověří zadaný hlavní název pomocí Microsoft Entra, načte identifikátor objektu (ID objektu uživatele nebo skupiny, ID aplikace nebo ID klienta) a uloží identifikátor jako identifikátor zabezpečení uživatele (SID) v metadatech SQL. Při použití klauzule musíte být členem role FROM EXTERNAL PROVIDER v Microsoft Entra. Následující ukázkové skripty T-SQL používají FROM EXTERNAL PROVIDER k vytvoření uživatele založeného na uživateli Microsoft Entra, instančním objektu v Microsoft Entra nebo skupině v 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; 

Vytvořte uživatele databáze připojeni jako principál služby Microsoft Entra

Pokud je aplikace připojená k databázi pomocí principálu služby, musí aplikace vydat CREATE USER s klauzulemi SID a TYPE k vytvoření uživatelů pro objekty zabezpečení Microsoft Entra. Zadaný hlavní název se v Microsoft Entra neověřuje. Za zadání platného názvu a platného identifikátoru SID a typu objektu uživatele zodpovídá aplikace (vývojář aplikace).

Pokud je zadaný objekt zabezpečení uživatelem nebo skupinou v Microsoft Entra, identifikátor SID musí být ID objektu daného uživatele nebo skupiny v Microsoft Entra. Pokud je zadaným objektem servisní instanční objekt v Microsoft Entra, pak musí identifikátor SID být ID aplikace (ID klienta) tohoto servisního instančního objektu v Microsoft Entra. ID objektů a ID aplikací (ID klientů) získané z Microsoft Entra musí být převedeny na binary(16).

Hodnota argumentu TYPE musí být:

  • E – pokud zadaným Microsoft Entra instančním objektem je uživatel nebo instanční objekt.
  • X – pokud zadaný Microsoft Entra hlavní objekt je skupina.

Následující ukázkový skript T-SQL vytvoří uživatele databáze pro uživatele Microsoft Entra s názvem bob@contoso.com a nastaví identifikátor SID nového uživatele na ID objektu Microsoft Entra uživatele. Jedinečný identifikátor ID objektu uživatele je převeden a pak zřetězen na CREATE USER příkaz. Nahraďte <unique identifier sid> ID objektu uživatele v 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);

Následující příklad vytvoří uživatele databáze pro instanční objekt Microsoft Entra s názvem HRApp a nastaví identifikátor SID nového uživatele na ID klienta instančního objektu v 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);

Následující příklad vytvoří uživatele databáze pro skupinu Microsoft Entra s názvem HR a nastaví identifikátor SID nového uživatele na ID objektu skupiny.

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);

Omezení

  • Microsoft Entra ID je jediný poskytovatel identity, který Fabric podporuje pro databáze SQL. Konkrétně se nepodporuje ověřování SQL.
  • Uživatelské přihlášení (principály serveru) nejsou podporována.
  • Jediná podporovaná zásada připojení pro databázi SQL v Microsoft Fabric je v současné době Default. Další informace naleznete v tématu zásady připojení.