Objekty zabezpečení serveru Microsoft Entra

Můžete vytvářet a používat objekty zabezpečení serveru z Microsoft Entra ID (dříve Azure Active Directory) jako přihlašovací údaje do virtuální master databáze vyhrazeného fondu SQL Azure Synapse Analytics.

Poznámka:

Hlavní objekty serveru Microsoft Entra jsou momentálně ve verzi Preview pro Azure Synapse Analytics.

Existuje několik výhod používání serverových principů Microsoft Entra s dedikovaným SQL poolem:

  • Podpora rolí serverů pro správu oprávnění.
  • Podpora více uživatelů Microsoft Entra se speciálními rolemi pro Azure Synapse Analytics, například role loginmanager a dbmanager
  • Funkční parita mezi přihlášeními SQL a přihlášeními Microsoft Entra
  • Zvyšte podporu funkčních vylepšení, například použitím ověřování pouze pomocí Microsoft Entra. Autentizace pouze přes Microsoft Entra umožňuje deaktivovat SQL autentizaci, která zahrnuje správce SQL serveru, SQL přihlášení a uživatele.
  • Pomocí přihlášení pomocí instančního objektu Microsoft Entra se speciálními rolemi můžete plně automatizovat vytváření a údržbu uživatelů i databází pomocí aplikací Microsoft Entra.

Pro více informací viz Ověřování Microsoft Entra pro Azure Synapse Analytics.

Povolení

Pro použití nebo vytvoření přihlášení Microsoft Entra ve virtuální master databázi potřebujete následující oprávnění:

  • Oprávnění správce pro Microsoft Entra nebo členství v roli serveru loginmanager. První přihlášení do Microsoft Entra může vytvořit pouze administrátor Microsoft Entra.
  • Musí být členem Microsoft Entra ID ve stejném tenantovi, který používá Azure Synapse Analytics.

Ve výchozím nastavení se nově vytvořeným přihlášením Microsoft Entra v databázi master uděluje oprávnění VIEW ANY DATABASE.

Syntaxe objektů zabezpečení Microsoft Entra

Pomocí následující syntaxe vytvořte a spravujte server a objekty databáze Microsoft Entra.

Vytvoření přihlášení

Tato syntaxe vytvoří přihlášení na úrovni serveru na základě identity Microsoft Entra. Tento příkaz ve virtuální master databázi může spustit pouze administrátor Microsoft Entra.

CREATE LOGIN login_name
  { 
    FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid'] 
    | WITH <option_list> [,..] 
  }

<option_list> ::=
    PASSWORD = { 'password' }
    [ , SID = sid ]

login_name určuje objekt zabezpečení Microsoft Entra, kterým je uživatel, skupina nebo aplikace Microsoft Entra.

Další informace najdete v tématu CREATE LOGIN (Transact-SQL).

Vytvoření uživatele z přihlášení

Následující syntaxe T-SQL vytvoří instanční objekt Microsoft Entra na úrovni databáze mapovaný na přihlášení Microsoft Entra ve virtuální master databázi. Podobně jako u syntaxe pro vytvoření uživatele Microsoft Entra obsaženého v databázi je jediný rozdíl v tom, že se zadává FROM LOGIN [login_name] namísto FROM EXTERNAL PROVIDER.

Pokud chcete vytvořit uživatele Microsoft Entra z přihlášení Microsoft Entra, použijte následující syntaxi.

CREATE USER [user_name] FROM LOGIN [login_name]

Pomocí sloupce SID z sys.database_principals můžete rozlišit mezi obsaženým uživatelem databáze Microsoft Entra a uživatelem Microsoft Entra vytvořeným z přihlášení. Pro uživatele obsažené databáze je SID binární řetězec o délce 16. Pro uživatele, který se přihlašuje, má SID délku 18 a koncovku AADE.

Poznámka:

Přidáním AADE přípony k SID identifikujete uživatele Microsoft Entra jako vytvořeného na základě přihlášení. To však také znamená, že SID pro přihlášení a jeho uživatele se mezi sys.database_principals a sys.server_principals neshodují. Abyste uživatele mohli přiřadit zpět k jeho přihlášení, musíte nejprve odstranit příponu AADE.

Pokud chcete porozumět koncepčnímu rozdílu mezi uživateli založenými na přihlášení a uživateli databáze s omezením, podívejte se na uživatele databáze s omezením.

Další informace o všech syntaxích vytvoření uživatele naleznete v tématu CREATE USER (Transact-SQL).

Zakázat nebo povolit přihlášení pomocí ALTER LOGIN

Použijte syntaxi DDL ALTER LOGIN (Transact-SQL) k povolení nebo zakázání přihlášení Microsoft Entra ve specializovaném fondu SQL služby Azure Synapse Analytics.

ALTER LOGIN [login_name] DISABLE

Když deaktivujete přihlášení, instanční objekt serveru se už nemůže připojit. Zakázání přihlášení také zabrání všem databázovým objektům zabezpečení (uživatelům), které jste z tohoto přihlášení vytvořili, v připojení k příslušným databázím.

Poznámka:

  • ALTER LOGIN login_name DISABLE Nemůže ovlivnit uživatele obsažené databáze, protože nejsou přidruženi k přihlášením.

  • ALTER LOGIN login_name DISABLE není podporováno pro skupiny Microsoft Entra.

  • Individuální zakázaný přihlašovací účet nemůže patřit uživateli, který je součástí přihlašovací skupiny, kterou jste vytvořili v databázi master (například administrátorská skupina Microsoft Entra).

  • Aby se změny DISABLE nebo ENABLE projevily okamžitě, vymažte autentizační cache a cache TokenAndPermUserStore pomocí následujících příkazů T-SQL:

    DBCC FLUSHAUTHCACHE
    DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
    

Omezení a poznámky

  • Správce SQL Serveru nemůže v žádné databázi vytvářet přihlášení Microsoft Entra ani uživatele.
  • Dedikované SQL pooly v pracovních prostorech Azure Synapse Analytics nepoužívají logické SQL servery.
  • Správce SQL nebo uživatel SQL nemůže spustit následující operace Microsoft Entra:
    • CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
    • CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER
    • EXECUTE AS USER [bob@contoso.com]
    • ALTER AUTHORIZATION ON securable::name TO [bob@contoso.com]
  • Impersonation of Microsoft Entra server principals (logins) není podporována pro Azure Synapse Analytics:
  • Přihlášení Microsoft Entra se nemůžou překrývat se správcem Microsoft Entra. Správce Microsoft Entra má přednost před přihlášením. Pokud už účet Microsoft Entra má přístup k serveru jako správce Microsoft Entra, jednotlivě nebo jako součást skupiny, nebude mít žádné přihlášení vytvořené pro tento účet žádný vliv. Vytvoření přihlášení ale není blokováno prostřednictvím T-SQL. Po autentizaci účtu na serveru má přihlášení efektivní oprávnění správce Microsoft Entra, nikoli nově vytvořeného přihlášení.
  • Není podporována změna oprávnění na konkrétním přihlašovacím objektu Microsoft Entra:
    • GRANT <PERMISSION> ON LOGIN :: <Microsoft Entra account> TO <Any other login>
  • Když upravíte oprávnění pro přihlášení do Microsoft Entra, ve výchozím nastavení se změny uplatní až při dalším připojení přihlášení do specializovaného SQL poolu. Na všechna existující otevřená připojení s přihlášením to nemá vliv. Chcete-li vynutit, aby změny oprávnění nabyly okamžité účinnosti, můžete ručně vymazat mezipaměť ověřování a TokenAndPermUserStore, jak je popsáno výše v části zakázání nebo povolení přihlášení pomocí příkazu ALTER LOGIN. Toto chování platí také při změnách členství v rolích serveru pomocí ALTER SERVER ROLE.
  • V aplikaci SQL Server Management Studio skriptovací příkaz pro vytvoření uživatele nekontroluje, jestli už existuje přihlášení master Microsoft Entra se stejným názvem. Vždy generuje T-SQL pro samostatného uživatele databáze Microsoft Entra.
  • Pokud se pokoušíte vytvořit přihlášení nebo uživatele z instančního objektu s jiným zobrazovaným názvem, může dojít k chybě. Pro více informací o zmírnění této chyby viz Aspekty názvu.
  • Uživatelé databáze vytvoření pomocí přihlášení přes Microsoft Entra mohou zaznamenat zpoždění při přidělování rolí a oprávnění. Pokud se s tímto problémem setkáte, použijte následující příkazy:
    • Odstraňte uživatele z uživatelské databáze.
    • Spustit DBCC FREESYSTEMCACHE('TokenAndPermUserStore') k vymazání mezipaměti zabezpečení v databázi.
    • Proveďte DBCC FLUSHAUTHCACHE, abyste vymazali mezipaměť kontextu federovaného ověřování.
    • Vytvořte uživatele na základě přihlášení.

Omezení zabezpečení serveru skupiny Microsoft Entra

Následující omezení platí pro skupinová přihlášení Microsoft Entra v Azure Synapse Analytics:

  • Serverové role nejsou podporovány pro skupiny Microsoft Entra.
  • Pokud je váš SQL administrátor Microsoft Entra skupina, uživatelé této skupiny narazí na určitá omezení při připojení. Každý uživatel Microsoft Entra není v sys.server_principals tabulce uveden samostatně. Toto omezení má různé důsledky, včetně volání na SUSER_SID, která vracejí NULL.
  • Uživatelská přihlášení Microsoft Entra, která jsou součástí přihlášení skupin Microsoft Entra, nejsou vytvořena implicitně. Tito uživatelé nemají výchozí schéma a nemohou provádět operace, například CREATE SCHEMA dokud nezaložíte přihlášení pro uživatele Microsoft Entra nebo nepřiřadíte skupině výchozí schéma.
  • Vlastníka databáze nelze změnit na skupinu Microsoft Entra.
    • ALTER AUTHORIZATION ON database::<mydb> TO [my_aad_group] selže s chybovou zprávou:

      Msg 33181, Level 16, State 1, Line 4
      The new owner cannot be Azure Active Directory group.
      

Další kroky