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í:
- Nástroje SQL, které podporují ověřování Microsoft Entra, včetně aplikace SQL Server Management Studio a rozšíření mssql pomocí nástroje Visual Studio Code.
- Aplikace, které používají klientské ovladače SQL podporující ověřování Microsoft Entra, včetně SqlClient, JDBC, ODBC a OLE DB.
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
, ActiveDirectoryServicePrincipal
nebo 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í.