Konfigurace a správa ověřování Microsoft Entra pomocí Azure SQL

Applies to:Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

V tomto článku se dozvíte, jak používat Microsoft Entra ID pro ověřování s Azure SQL Database, Azure SQL Managed Instance a Azure Synapse Analytics.

Poznámka:

Microsoft Entra ID se dříve označovala jako Azure Active Directory (Azure AD).

Případně můžete také konfigurovat ověřování Microsoft Entra pro SQL Server on Azure Virtual Machines.

Požadavky

Pokud chcete použít ověřování Microsoft Entra s prostředkem Azure SQL, potřebujete následující požadavky:

Vytvoření a naplnění tenanta Microsoft Entra

Než budete moct nakonfigurovat ověřování Microsoft Entra pro prostředek Azure SQL, musíte vytvořit tenanta Microsoft Entra a naplnit ho uživateli a skupinami. Microsoft Entra tenanty je možné spravovat zcela v rámci Azure nebo použít pro federaci místní služby Active Directory Domain Service.

Další informace naleznete v tématu:

Nastavení správce Microsoft Entra

Pokud chcete u prostředku použít ověřování Microsoft Entra, musí mít nastavený správce Microsoft Entra. I když jsou kroky pro Azure SQL Database, Azure Synapse Analytics a Azure SQL Managed Instance stejné, v této části jsou podrobně popsané různé rozhraní API a portálové prostředí, která to mají udělat pro jednotlivé produkty.

Správce Microsoft Entra je také možné nakonfigurovat při vytvoření zdroje Azure SQL. Pokud je správce Microsoft Entra už nakonfigurovaný, přeskočte tuto část.

Azure SQL Database a Azure Synapse Analytics

Nastavením správce Microsoft Entra povolíte ověřování Microsoft Entra pro váš server Logical pro Azure SQL Database a Azure Synapse Analytics. Správce Microsoft Entra pro váš server můžete nastavit pomocí portálu Azure, PowerShellu, Azure CLI nebo rozhraní REST API.

Na portálu Azure najdete název logical server

  • V poli název serveru na stránce Azure SQL Database Přehled.
  • V poli název serveru na stránce Přehled samostatného vyhrazeného fondu SQL v Azure Synapse Analytics.
  • V příslušném koncovém bodu SQL na stránce Přehled pracovního prostoru Azure Synapse Analytics.

Chcete-li nastavit správce Microsoft Entra pro váš logický server v portálu Azure, postupujte takto:

  1. Na portálu Azure podokno adresářů a předplatných zvolte adresář, který obsahuje váš prostředek Azure SQL, jako aktuální adresář.

  2. Vyhledejte sql servery a pak vyberte logický server pro váš databázový prostředek, aby se otevřelo podokno SQL Serveru .

    Snímek obrazovky znázorňující, jak vyhledat a vybrat SQL servery

  3. V podokně SQL pro logický server vyberte Microsoft Entra ID v části Settings a otevřete podokno Microsoft Entra ID.

  4. V podokně Microsoft Entra ID vyberte Naset správce a otevřete podokno Microsoft Entra ID.

    Screenshot zobrazuje možnost nastavit správce Microsoft Entra pro sql servery.

  5. Podokno Microsoft Entra ID zobrazuje všechny uživatele, skupiny a aplikace v aktuálním adresáři a umožňuje vyhledávat podle názvu, aliasu nebo ID. Vyhledejte požadovanou identitu pro správce Microsoft Entra a vyberte ji a pak výběrem možnosti Select podokno zavřete.

  6. V horní části stránky Microsoft Entra ID pro logický server vyberte Save.

    Screenshot zobrazuje možnost uložení Microsoft Entra admin.

    Id objektu Objektu se zobrazí vedle názvu správce pro uživatele a skupiny Microsoft Entra. Pro aplikace (principály služeb) se zobrazí ID aplikace.

Proces změny správce může trvat několik minut. Nový správce se pak zobrazí v poli Microsoft Entra admin.

Pokud chcete správce odebrat, v horní části stránky Microsoft Entra ID vyberte Remove admin a pak vyberte Save. Odebráním správce Microsoft Entra deaktivujete ověřování Microsoft Entra pro logický server.

Poznámka:

Správce Microsoft Entra je uložený v databázi master serveru jako uživatel (hlavní objekt databáze). Vzhledem k tomu, že hlavní názvy databází musí být jedinečné, zobrazovaný název správce nemůže být stejný jako název žádného uživatele v databázi serveru master . Pokud už uživatel s tímto jménem existuje, nastavení správce Microsoft Entra se nezdaří a vrátí se zpět, což znamená, že se název už používá.

Azure SQL Managed Instance

Nastavení správce Microsoft Entra povolí ověřování Microsoft Entra pro Azure SQL Managed Instance. Správce Microsoft Entra spravované instance SQL můžete nastavit pomocí portálu Azure, PowerShellu, Azure CLI nebo rozhraní REST API.

Pokud chcete spravované instanci SQL Serveru udělit oprávnění ke čtení Microsoft Entra ID pomocí portálu Azure, přihlaste se jako Privilegovaný správce rolí a postupujte takto:

  1. Na portálu Azure vyberte v pravém horním rohu svůj účet a pak zvolte Přepnout adresáře, abyste mohli ověřit, který adresář je vaším Aktuální adresář. V případě potřeby přepněte adresáře.

    Snímek obrazovky portálu Azure, který ukazuje, kde změnit adresář.

  2. Na portálu Azure Podokno Directories + předplatná vyberte adresář, který obsahuje vaši spravovanou instanci, jako aktualní adresář.

  3. Vyhledejte spravované instance SQL a výběrem spravované instance otevřete podokno spravované instance SQL. Potom v části NastaveníMicrosoft Entra ID> a otevřete tak podokno Microsoft Entra ID vaší instance.

    Screenshot portálu Azure zobrazující stránku správce Microsoft Entra pro vybranou spravovanou instanci SQL.

  4. V podokně správce Microsoft Entra vyberte v navigačním panelu Nasadit správce a otevřete tak podokno Microsoft Entra ID.

    Snímek obrazovky ukazující příkaz „Set admin“ zvýrazněný na administrátorské stránce Microsoft Entra pro vybranou spravovanou instanci SQL.

  5. V podokně Microsoft Entra ID vyhledejte uživatele, zaškrtněte políčko vedle uživatele nebo skupiny, aby se stali správce, a stiskněte Vybrat, čímž zavřete podokno a vrátíte se na stránku správce Microsoft Entra pro vaši spravovanou instanci.

    Podokno Microsoft Entra ID zobrazuje všechny členy a skupiny v aktuálním adresáři. Neaktivní uživatelé nebo skupiny se nedají vybrat, protože nejsou podporovaní jako správci Microsoft Entra. Vyberte identitu, kterou chcete přiřadit jako správce.

  6. Na navigačním panelu stránky správce Microsoft Entra pro spravovanou instanci vyberte Uložit, abyste potvrdili správce Microsoft Entra.

    Screenshot stránky správce Microsoft Entra s tlačítkem Uložit v horním řádku vedle tlačítka Nastavit správce a Odebrat správce.

    Po dokončení operace změny správce se nový správce zobrazí v poli správce Microsoft Entra.

    Id objektu Objektu se zobrazí vedle názvu správce pro uživatele a skupiny Microsoft Entra. Pro aplikace (služební hlavní objekty) je zobrazeno ID aplikace.

Tip

Pokud chcete správce odebrat, vyberte Remove admin v horní části stránky Microsoft Entra ID a pak vyberte Save.

Přiřazení oprávnění Microsoft Graph

SQL Managed Instance potřebuje oprávnění ke čtení Microsoft Entra ID pro scénáře, jako je autorizace uživatelů, kteří se připojují prostřednictvím členství ve skupině zabezpečení a vytváření nových uživatelů. Aby ověřování Microsoft Entra fungovalo, musíte přiřadit identitu spravované instance k roli Čtenáři adresáře. Můžete to provést pomocí portálu Azure nebo PowerShellu.

U některých operací Azure SQL Database a Azure Synapse Analytics také vyžadují oprávnění k dotazování Microsoft Graph, která jsou vysvětlená v Microsoft Graph oprávněních. Azure SQL Database a Azure Synapse Analytics podporují jemně odstupňovaná oprávnění grafu pro tyto scénáře, zatímco SQL Managed Instance vyžaduje roli Directory Readers. Podrobná oprávnění a jejich přiřazení jsou podrobně popsána v povolení servisních účtů k vytváření uživatelů Microsoft Entra.

Důležité

Azure SQL Database a SQL Managed Instance pro přístup k Microsoft Graph používají různé modely oprávnění:

  • Azure SQL Database a Azure Synapse Analytics: Podpora jemně odstupňovaných oprávnění Microsoft Graph API (například User.Read.All, GroupMember.Read.All a Application.Read.All) přiřazená přímo k identitě serveru. Tento přístup se řídí principem nejnižšího oprávnění a doporučuje se. Podrobné pokyny najdete v tématu Umožnit poskytovatelům služeb vytváření uživatelů Microsoft Entra. Roli Čtenáři adresáře lze také použít jako širší alternativu.
  • SQL Managed Instance: Vyžaduje, aby roli Čtenáři adresářů nebo ekvivalentní oprávnění Microsoft Graph byla přiřazena identitě instance. Portál Azure nabízí pohodlný banner na stránce Microsoft Entra ID, která vás vyzve k udělení role Čtenáři adresáře. Postupujte podle kroků v sekci Role Čtenáři adresáře.

Pokud konfigurujete Azure SQL Database, není nutné přiřazovat roli Čtenáři adresáře pro základní nastavení správce Microsoft Entra. Místo toho přiřaďte podrobná oprávnění Microsoft Graph identifikátoru serveru, jak je popsáno ve Spravovaných identitách v Microsoft Entra pro Azure SQL.

Role Čtenáři adresářů

Role Directory Readers a banner portálu popsané v této části platí především pro SQL Managed Instance. Pro Azure SQL Database můžete místo toho přiřadit jemně-granulární Microsoft Graph oprávnění, nebo případně použít Directory Readers pro širší alternativu.

Na stránce Microsoft Entra ID pro SQL Managed Instance na portálu Azure se zobrazí pohodlný banner, když instance nemá přiřazená oprávnění čtenáře adresáře.

  1. Vyberte banner v horní části stránky Microsoft Entra ID a udělte oprávnění spravované identitě přiřazené systémem nebo uživatelem, která představuje vaši instanci. Tuto operaci může provést pouze správce privilegovaných rolí nebo vyšší role ve vašem tenantovi.

    Poznámka:

    Pokud banner nevidíte, instance už může mít přiřazenou roli Čtenáře adresáře nebo nemáte požadovanou roli Správce privilegovaných rolí . Pokud tuto roli nemáte, požádejte správce tenanta, aby udělil oprávnění, nebo použijte metodu PowerShellu na kartě PowerShell .

    Screenshot dialogového okna pro udělení oprávnění spravované instanci SQL pro přístup k Microsoft Entra ID s vybraným tlačítkem Udělit oprávnění.

  2. Po úspěšném provedení operace se v pravém horním rohu zobrazí oznámení o úspěchu :

    Screenshot oznámení potvrzující úspěšné aktualizace oprávnění ke čtení Microsoft Entra ID pro spravovanou instanci.

Správce Microsoft Entra se teď dá použít k vytváření hlavních serverů Microsoft Entra (přihlášení) a hlavních objektů databáze (uživatelů). Další informace najdete v tématu Microsoft Entra integrace s Azure SQL Managed Instance.

Vytvoření hlavních identit Microsoft Entra v SQL

Pokud se chcete připojit k databázi ve službě SQL Database nebo Azure Synapse Analytics s ověřováním Microsoft Entra, musí být v databázi nakonfigurován principál s alespoň oprávněním CONNECT.

Uživatelská oprávnění databáze

Když se vytvoří uživatel databáze, ve výchozím nastavení obdrží CONNECT oprávnění k databázi. Uživatel databáze také dědí oprávnění za dvou okolností:

  • Pokud je uživatel členem skupiny Microsoft Entra, která má také přiřazená oprávnění na serveru.
  • Pokud je uživatel vytvořen z přihlašovacího údaje, zdědí serverem přiřazená oprávnění, která jsou použitelná v databázi.

Správa oprávnění pro objekty zabezpečení serveru a databáze funguje stejně bez ohledu na typ objektu zabezpečení (Microsoft Entra ID, ověřování SQL atd.). Místo přímého udělení oprávnění uživatelům doporučujeme udělit oprávnění databázovým rolím. Uživatelé pak mohou být přidáni do rolí s příslušnými oprávněními. To zjednodušuje správu dlouhodobých oprávnění a snižuje pravděpodobnost, že identita si zachová přístup déle, než je vhodné.

Další informace naleznete v tématu:

Uživatelé databáze s omezením

Uživatel databáze s omezením je typ uživatele SQL, který není připojený k přihlášení v master databázi. Pokud chcete vytvořit uživatele obsažené databáze Microsoft Entra, připojte se k databázi s identitou Microsoft Entra, která má alespoň oprávnění ALTER ANY USER**. Následující příklad T-SQL vytvoří principál databáze Microsoft_Entra_principal_name pomocí Microsoft Entra ID.

CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;

Pokud chcete vytvořit uživatele databáze s omezením pro skupinu Microsoft Entra, zadejte zobrazovaný název skupiny:

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

Pokud chcete vytvořit uživatele databáze s omezenými oprávněními pro spravovanou identitu nebo služební principál, zadejte zobrazovaný název identity:

CREATE USER [appName] FROM EXTERNAL PROVIDER;

Chcete-li vytvořit uzavřeného uživatele databáze pro uživatele Microsoft Entra, zadejte hlavní název uživatelského účtu:

CREATE USER [adrian@contoso.com] FROM EXTERNAL PROVIDER;

Uživatelé na základě přihlášení

Poznámka:

Microsoft Entra objekty zabezpečení serveru (přihlášení) jsou aktuálně ve verzi Public Preview pro Azure SQL Database a Azure Synapse Analytics. Microsoft Entra přihlášení jsou obecně dostupná pro Azure SQL Managed Instance a SQL Server 2022.

Microsoft Entra serverové principály (nebo přihlášení) jsou podporovány, což znamená, že samostatní uživatelé databáze nejsou potřeba. Objekty zabezpečení databáze (uživatelé) je možné vytvořit na základě objektu zabezpečení serveru, což znamená, že uživatelé Microsoft Entra mohou dědit oprávnění přidělená na úrovni serveru pro přihlášení.

CREATE USER [appName] FROM LOGIN [appName];

Další informace najdete v tématu SQL Managed Instance overview. Podrobnosti o syntaxi pro vytvoření přihlašovacích údajů serveru Microsoft Entra naleznete v tématu CREATE LOGIN.

Externí uživatelé

Nemůžete přímo vytvořit databázového uživatele pro identitu spravovanou v jiném tenantovi Microsoft Entra, než je ten přidružený k vašemu předplatnému Azure. Uživatelé v jiných adresářích se ale dají importovat do přidruženého adresáře jako externí uživatelé. Pak je můžete použít k vytvoření uživatelů databáze s omezením, kteří mají přístup k databázi. Externí uživatelé můžou také získat přístup prostřednictvím členství ve skupinách Microsoft Entra.

Examples: Vytvoření uživatele uzamčené databáze představujícího uživatele federované nebo spravované domény Microsoft Entra:

CREATE USER [alice@fabrikam.com] FROM EXTERNAL PROVIDER;

Uživatelský účet federované domény, který se importuje do spravované domény jako externí uživatel, musí používat identitu spravované domény.

Důležité informace o názvu

Speciální znaky, jako je dvojtečka : nebo ampersand & , pokud jsou zahrnuté jako uživatelská jména v T-SQL CREATE LOGIN a CREATE USER příkazy, nejsou podporovány.

Microsoft Entra ID a Azure SQL se liší v návrhu správy uživatelů jedním klíčovým způsobem: Microsoft Entra ID umožňuje duplikovat zobrazované názvy v rámci tenanta, zatímco Azure SQL vyžaduje všechny objekty zabezpečení serveru na serveru nebo instanci a všechny objekty zabezpečení databáze v databázi mají jedinečný název. Vzhledem k tomu, že Azure SQL při vytváření hlavních objektů přímo používá zobrazovaný název identity z Microsoft Entra, může to způsobit chyby při vytváření uživatelů. Aby bylo možné tento problém vyřešit, Azure SQL vydalo vylepšení WITH OBJECT_ID aktuálně ve verzi Preview, což uživatelům umožňuje zadat ID objektu Microsoft Entra přidané identity na server nebo instanci.

oprávnění Microsoft Graph

Příkaz CREATE USER ... FROM EXTERNAL PROVIDER vyžaduje Azure SQL přístup k Microsoft Entra ID ("externímu poskytovateli") jménem přihlášeného uživatele. Někdy vznikají okolnosti, které způsobují, že Microsoft Entra ID vrátí výjimku do Azure SQL.

  • Může dojít k chybě SQL 33134, která obsahuje chybovou zprávu specifickou pro Microsoft Entra ID. Tato chyba obvykle říká, že přístup byl odepřen, že se uživatel musí zaregistrovat do vícefaktorového ověřování pro přístup k prostředku nebo že přístup mezi aplikacemi první strany musí být zpracován prostřednictvím předběžného ověření. V prvních dvou případech je problém obvykle způsoben zásadami podmíněného přístupu, které jsou nastavené v tenantovi Microsoft Entra uživatele: brání uživateli v přístupu k externímu poskytovateli. Problém by měl vyřešit aktualizace zásad podmíněného přístupu tak, aby umožňovala přístup k aplikaci 00000003-0000-0000-c000-000000000000 (ID aplikace microsoft Graph API). Pokud chyba říká, že přístup mezi aplikacemi první strany musí být zpracován prostřednictvím předběžného ověření, příčinou problému je to, že uživatel je přihlášený jako instanční objekt. Příkaz by měl být úspěšný, pokud ho uživatel spustí.
  • Pokud se zobrazí Vypršení časového limitu připojení, možná budete muset nastavit parametr TransparentNetworkIPResolution connection string na hodnotu false. Další informace najdete v tématu Problém s vypršením časového limitu při připojení s .NET Framework 4.6.1: TransparentNetworkIPResolution.

Další informace o vytváření uživatelů databáze s omezením na základě identit Microsoft Entra najdete v tématu CREATE USER.

Konfigurace vícefaktorového ověřování

Pokud chcete zlepšit zabezpečení prostředku Azure SQL, zvažte konfiguraci multifactor ověřování (MFA), která uživatele vyzve, aby použil druhou alternativní metodu k ověření databáze, jako je telefonní hovor nebo ověřovací aplikace.

Pokud chcete u prostředku Azure SQL použít vícefaktorové ověřování, nejprve povolte vícefaktorové ověřování a pak použijte zásadu podmíněného přístupu k vynucení použití vícefaktorového ověřování pro prostředek Azure SQL.

Připojení pomocí Microsoft Entra

Po nakonfigurování ověřování Microsoft Entra ho můžete použít k připojení k prostředku SQL pomocí nástrojů Microsoftu, jako jsou SQL Server Management Studio a SQL Server Data Tools a nakonfigurovat aplikace client pro připojení pomocí Microsoft Entra identit.

Řešení potíží s ověřováním Microsoft Entra

Pokyny k řešení potíží najdete v tématu Blog: Řešení potíží souvisejících s ověřováním Microsoft Entra pomocí Azure SQL Database a Azure Synapse.