Sdílet prostřednictvím


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

Platí pro:SQL Database v Microsoft Fabric

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

Stejně jako jiné typy položek Microsoft Fabric se databáze SQL spoléhají na ověřování Microsoft Entra.

K úspěšnému ověření v databázi SQL musí mít uživatel Microsoft Entra, instanční objekt nebo jeho skupina oprávnění ke čtení položky pro databázi v prostředcích infrastruktury. Informace o tom, jak udělit identitě Microsoft Entra přístup k pracovnímu prostoru Infrastruktury nebo konkrétní databázi, najdete v tématu Řízení přístupu k prostředkům infrastruktury.

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

Poznámka:

Pokud chcete instančním objektům povolit připojení k Prostředkům infrastruktury a k databázím SQL, musíte také povolit, aby instanční objekty mohly používat nastavení tenanta Fabric API. Informace o povolení nastavení tenanta najdete v tématu Nastavení tenanta Infrastruktury.

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 přidat klíčové slovo režimu ověřování v jejich SQL připojovací řetězec, například ActiveDirectoryInteractive, ActiveDirectoryServicePrincipalnebo ActiveDirectoryPassword.

Vytvoření uživatelů databáze pro identity Microsoft Entra

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

Vytváření uživatelů databáze se nevyžaduje, pokud používáte řízení přístupu k prostředkům infrastruktury (role pracovního prostoru nebo oprávnění k položce). 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živatel Microsoft Entra

Pokud jste připojení k databázi jako uživatel Microsoft Entra, měli byste použít s CREATE USER klauzulí FROM EXTERNAL PROVIDER k vytvoření uživatelů pro objekty zabezpečení Microsoft Entra. FROM EXTERNAL PROVIDER ověří zadaný hlavní název pomocí microsoft Entra, načte hlavní identifikátor (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í FROM EXTERNAL PROVIDER klauzule musíte být členem role Čtenář adresáře v Microsoft Entra. Následující ukázkové skripty T-SQL slouží 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ření uživatelů databáze při připojení jako instančního objektu Microsoft Entra

Pokud je aplikace připojená k databázi pomocí instančního objektu, musí aplikace vystavovat CREATE USER klauzule SID a TYPE a vytvářet uživatele 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 tohoto uživatele nebo skupiny v Microsoft Entra. Pokud je zadaným instančním objektem instanční objekt v Microsoft Entra, musí být identifikátor SID ID aplikace (ID klienta) instančního objektu v Microsoft Entra. ID objektů a ID aplikací (ID klienta) získané z Microsoft Entra musí být převedeny na binární (16).

Hodnota argumentu TYPE musí být:

  • E – pokud zadaný objekt zabezpečení Microsoft Entra je uživatel nebo instanční objekt.
  • X – pokud zadaný objekt zabezpečení Microsoft Entra 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, který nastaví identifikátor SID nového uživatele na ID objektu uživatele Microsoft Entra. 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, který 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, nastavení identifikátoru 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 [' + @principal_name + '] WITH SID = ' + @castObjectId + ', TYPE = X;'
EXEC (@cmd);

Omezení

  • Id Microsoft Entra je jediná databáze SQL zprostředkovatele identity v prostředcích infrastruktury. Konkrétně se nepodporuje ověřování SQL.
  • Přihlášení (objekty zabezpečení serveru) se nepodporují.