Objekty zabezpečení serveru Microsoft Entra

Platí pro:Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics (pouze vyhrazené fondy SQL)

Teď můžete vytvářet a využívat instanční objekty z Microsoft Entra ID (dříve Azure Active Directory), což jsou přihlášení ve virtuální master databázi služby SQL Database. Použití instančních objektů serveru Microsoft Entra pro službu SQL Database má několik výhod:

  • Podpora rolí serveru Azure SQL Database pro správu oprávnění
  • Podpora více uživatelů Microsoft Entra se zvláštními rolemi pro SLUŽBU SQL Database, jako jsou tyto loginmanager role a dbmanager role.
  • Funkční parita mezi přihlášeními SQL a přihlášeními Microsoft Entra
  • Zvyšte podporu funkčního vylepšení, jako je využití ověřování pouze Microsoft Entra. Ověřování Microsoft Entra-only umožňuje zakázat ověřování SQL, což zahrnuje správce SQL Serveru, přihlášení SQL a uživatele.
  • Umožňuje objektům zabezpečení Microsoft Entra podporovat geografické repliky. Objekty zabezpečení Microsoft Entra se můžou připojit k geografické replice uživatelské databáze s oprávněními jen pro čtení a odepření primárního serveru.
  • Pomocí přihlášení instančního objektu Microsoft Entra se speciálními rolemi můžete plně automatizovat vytváření a údržbu uživatelů a databází pomocí aplikací Microsoft Entra.

Další informace o ověřování Microsoft Entra v Azure SQL naleznete v tématu Použití ověřování Microsoft Entra.

Poznámka:

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

Oprávnění

K využití nebo vytvoření přihlášení Microsoft Entra ve virtuální master databázi se vyžadují následující oprávnění.

  • Oprávnění správce Microsoft Entra nebo členství v loginmanager roli serveru. První přihlášení Microsoft Entra může vytvořit pouze správce Microsoft Entra.
  • Musí být členem ID Microsoft Entra v rámci stejného adresáře, který se používá pro Azure SQL Database.

Ve výchozím nastavení jsou nově vytvořená přihlášení Microsoft Entra v master databázi udělena 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 může ve virtuální master databázi spustit pouze správce 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, což 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 syntaxe pro vytvoření databáze obsahoval uživatel Microsoft Entra, jediný rozdíl je určen FROM LOGIN [login_name] spíše než 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 z sys.database_principals můžete SID rozlišovat mezi uživatelem databáze Microsoft Entra a uživatelem Microsoft Entra vytvořeným z přihlášení. Pro uživatele SID databáze s omezením je binární řetězec o délce 16. Pro uživatele SID založeného na přihlášení je délka 18 s příponou AADE .

Poznámka:

Připojení přípony AADE k identifikátoru SID je způsob, jakým identifikujeme uživatele Microsoft Entra, který se vytváří z přihlášení. To však také znamená, že identifikátory SID pro přihlášení a jeho uživatele se neshoduje s hodnotami a sys.server_principalssys.database_principals. Pokud chcete korelovat uživatele zpět ke svému přihlášení, AADE musí být přípona nejprve odebrána.

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ázání nebo povolení přihlášení pomocí ALTER LOGIN

Syntaxe DDL ALTER LOGIN (Transact-SQL) slouží k povolení nebo zakázání přihlášení Microsoft Entra ve službě Azure SQL Database.

ALTER LOGIN [login_name] DISABLE 

Pokud je přihlášení zakázané, připojení už nebudou používat tento objekt zabezpečení serveru. Zakáže také všechny objekty zabezpečení databáze (uživatele) vytvořené z přihlášení, aby se mohly připojit ke svým příslušným databázím.

Poznámka:

  • ALTER LOGIN login_name DISABLE nebude mít vliv na uživatele databáze s omezením, protože nejsou přidružené k přihlášením.

  • ALTER LOGIN login_name DISABLE nepodporuje se pro skupiny Microsoft Entra.

  • Individuální zakázané přihlášení nemůže patřit uživateli, který je součástí přihlašovací skupiny vytvořené v master databázi (například skupina správců Microsoft Entra).

  • DISABLEENABLE Aby se změny projevily okamžitě, musí být mezipaměť ověřování a mezipaměť TokenAndPermUserStore vymazána pomocí příkazů T-SQL.

    DBCC FLUSHAUTHCACHE
    DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS 
    

Role pro objekty zabezpečení Microsoft Entra

Speciální role pro službu SQL Database je možné přiřadit uživatelům ve virtuální master databázi pro objekty zabezpečení Microsoft Entra, včetně správce dbmanager a loginmanager.

Role serveru Azure SQL Database je možné přiřadit k přihlášenímve virtuální master databázi.

Kurz o udělení těchto rolí najdete v tématu Kurz: Vytvoření a využití přihlášení k serveru Microsoft Entra.

Omezení a poznámky

  • Správce SQL Serveru nemůže v žádné databázi vytvářet přihlášení Microsoft Entra ani uživatele.
  • 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]
  • Zosobnění instančních objektů serveru Microsoft Entra (přihlášení) se nepodporuje pro Azure SQL Database a Azure Synapse Analytics. Podporuje se pro službu SQL Managed Instance:
  • 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 ověření účtu na serveru bude mít přihlášení platná oprávnění správce Microsoft Entra, a ne nově vytvořené přihlášení.
  • Změna oprávnění u konkrétního přihlašovacího objektu Microsoft Entra se nepodporuje:
    • GRANT <PERMISSION> ON LOGIN :: <Microsoft Entra account> TO <Any other login>
  • Když změníte oprávnění pro přihlášení k Microsoft Entra, změny se ve výchozím nastavení projeví jenom při příštím přihlášení ke službě Azure SQL Database. Na všechna existující otevřená připojení s přihlášením to nemá vliv. Pokud chcete vynutit, aby se změny oprávnění projevily okamžitě, můžete ručně vymazat ověřování a tokenAndPermUserStore, jak je popsáno výše v zakázání nebo povolení přihlášení pomocí alter LOGIN. Toto chování platí také při provádění změn členství v rolích serveru pomocí ROLE ALTER SERVER.
  • V sadě SQL Server Management Studio a Azure Data 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 uživatele Microsoft Entra databáze s omezením.
  • 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ě. Další informace o zmírnění této chyby naleznete v tématu Microsoft Entra logins and users with nonunique display names.

Omezení zabezpečení serveru skupiny Microsoft Entra

S přihlášeními Microsoft Entra ve verzi Public Preview pro Azure SQL Database a Azure Synapse Analytics jsou známá omezení:

  • Role serveru Azure SQL Database nejsou podporované pro skupiny Microsoft Entra.
  • Pokud je váš správce SQL skupinou Microsoft Entra, existují určitá omezení, když se uživatelé této skupiny připojí. Každý uživatel Microsoft Entra není součástí sys.server_principals tabulky. To má různé důsledky, včetně volání na SUSER_SID vrácení NULL.
  • Přihlášení uživatelů Microsoft Entra, která jsou součástí přihlášení skupiny Microsoft Entra, se také nevytvořili implicitně, což znamená, že nemají výchozí schéma a nebudou moct provádět operace, jako CREATE SCHEMA je vytvoření přihlášení uživatele Microsoft Entra, nebo se ke skupině přiřadí výchozí schéma.
  • Změna vlastnictví databáze na skupinu Microsoft Entra jako vlastník databáze se nepodporuje.
    • 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