Objekty zabezpečení serveru Microsoft Entra
Platí pro: Azure SQL Database Azure 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 Azure SQL Database (Preview) a spravované instanci Azure SQL.
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.
Použití instančních objektů serveru Microsoft Entra s prostředkem Azure SQL 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 adbmanager
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.
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_principals
sys.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).DISABLE
ENABLE
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ím ve 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:
- Execute AS – klauzule (Transact-SQL)
- EXECUTE AS (Transact-SQL)
- Zosobnění objektů databáze Microsoft Entra (uživatelů) v uživatelské databázi je podporováno ve všech produktech Microsoft SQL.
- 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í naSUSER_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.