Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kan skapa och använda serverprinciper från Microsoft Entra ID (tidigare Azure Active Directory) som inloggningar i den virtuella master databasen i en dedikerad SQL-pool från Azure Synapse Analytics.
Note
Microsoft Entra Server Principals är för närvarande i förhandsvisning för Azure Synapse Analytics.
Det finns flera fördelar med att använda Microsoft Entra serverprinciper med en dedikerad SQL-pool:
- Stöd serverroller för behörighetshantering.
- Stöder flera Microsoft Entra-användare med specialroller för Azure Synapse Analytics, såsom
loginmanagerochdbmanager-roller. - Funktionell paritet mellan SQL-inloggningar och Microsoft Entra-inloggningar.
- Öka stöd för funktionella förbättringar, till exempel genom att använda autentisering med endast Microsoft Entra. Microsoft Entra-endast autentisering låter dig inaktivera SQL-autentisering, vilket inkluderar SQL-serveradministratör, SQL-inloggningar och användare.
- Använd Microsoft Entra-program med servicehuvudnamn och särskilda roller för fullständig automatisering av skapande och underhåll av användare och databaser.
För mer information, se Microsoft Entra authentication for Azure Synapse Analytics.
Permissions
För att använda eller skapa Microsoft Entra-inloggningar i den virtuella master databasen behöver du följande behörigheter:
- Microsoft Entra-administratörsbehörighet eller medlemskap i serverrollen
loginmanager. Endast Microsoft Entra-administratören kan skapa den första Microsoft Entra-inloggningen. - Måste vara medlem i Microsoft Entra ID inom samma katalog som används av Azure Synapse Analytics.
Som standard beviljas nyligen skapade Microsoft Entra-inloggningar i master databasen behörigheten VISA ALLA DATABASER .
Syntax för Microsoft Entra-huvudnamn
Använd följande syntax för att skapa och hantera Microsoft Entra-server- och databasobjekt.
Skapa inloggning
Den här syntaxen skapar en inloggning på servernivå baserat på en Microsoft Entra-identitet. Endast Microsoft Entra-administratören kan köra detta kommando i den virtuella master databasen.
CREATE LOGIN login_name
{
FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid']
| WITH <option_list> [,..]
}
<option_list> ::=
PASSWORD = { 'password' }
[ , SID = sid ]
Login_name anger Microsoft Entra-huvudprincipalen, som är en Microsoft Entra-användare, ett program eller en grupp.
Mer information finns i CREATE LOGIN (Transact-SQL).
Skapa användare från inloggning
Följande T-SQL-syntax skapar ett Microsoft Entra-huvudnamn på databasnivå som mappas till en Microsoft Entra-inloggning i den virtuella master databasen. Precis som syntaxen för att skapa en databas som innehåller Microsoft Entra-användare är den enda skillnaden att ange FROM LOGIN [login_name] istället för FROM EXTERNAL PROVIDER.
Om du vill skapa en Microsoft Entra-användare från en Microsoft Entra-inloggning använder du följande syntax.
CREATE USER [user_name] FROM LOGIN [login_name]
Du kan använda SID kolumnen från sys.database_principals för att skilja mellan en Microsoft Entra-innesluten databasanvändare och en Microsoft Entra-användare som skapats från en inloggning. För en innesluten databasanvändare är SID en binär sträng med längd 16. För en inloggningsbaserad användare är längden SID 18 med ett AADE suffix.
Note
Att lägga till suffixet AADE till SID är så du identifierar en Microsoft Entra-användare som skapad från en inloggning. Detta innebär dock också att SID:erna för inloggningen och dess användare inte matchar mellan sys.server_principals och sys.database_principals. För att koppla användaren tillbaka till användarens inloggning måste du först ta bort suffixet AADE.
Information om den konceptuella skillnaden mellan inloggningsbaserade användare och oberoende databasanvändare finns i inneslutna databasanvändare.
Mer information om all syntax för att skapa användare finns i CREATE USER (Transact-SQL).
Inaktivera eller aktivera en inloggning genom att använda ALTER LOGIN
Använd DDL-syntaxen ALTER LOGIN (Transact-SQL) för att aktivera eller inaktivera en Microsoft Entra inloggning i en Azure Synapse Analytics dedikerad SQL-pool.
ALTER LOGIN [login_name] DISABLE
När du inaktiverar en inloggning kan serverprincipen inte ansluta längre. Att inaktivera en inloggning förhindrar också att alla databasprincipaler (användare) som du skapat från den inloggningen ansluter till sina respektive databaser.
Note
ALTER LOGIN login_name DISABLEKan inte påverka inneslutna databasanvändare, eftersom de inte är kopplade till inloggningar.ALTER LOGIN login_name DISABLEstöds inte för Microsoft Entra-grupper.En enskild inaktiverad inloggning kan inte tillhöra en användare som ingår i en inloggningsgrupp som du har skapat i
master-databasen (till exempel en Microsoft Entra-administratörsgrupp).För att
DISABLE- ellerENABLE-ändringarna ska träda i kraft omedelbart, rensa autentiseringscachen ochTokenAndPermUserStore-cachen med följande T-SQL-kommandon:DBCC FLUSHAUTHCACHE DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
Begränsningar och kommentarer
- SQL Server-administratören kan inte skapa Microsoft Entra-inloggningar eller användare i några databaser.
- Dedikerade SQL-pooler i Azure Synapse Analytics-arbetsytor använder inte logiska SQL-servrar.
- En SQL-administratör eller SQL-användare kan inte köra följande Microsoft Entra-åtgärder:
CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDERCREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDEREXECUTE AS USER [bob@contoso.com]ALTER AUTHORIZATION ON securable::name TO [bob@contoso.com]
- Personifiering av Microsoft Entra server principals (inloggningar) stöds inte för Azure Synapse Analytics:
- EXECUTE AS-klausulen (Transact-SQL)
- KÖR SOM (Transact-SQL)
- Personifiering av Microsoft Entra-databasens säkerhetsidentiteter (användare) i en användardatabas stöds.
- Microsoft Entra-inloggningar kan inte överlappa med Microsoft Entra-administratören. Microsoft Entra-administratören har företräde framför alla inloggningar. Om ett Microsoft Entra-konto redan har åtkomst till servern som Microsoft Entra-administratör, individuellt eller som en del av en grupp, har ingen inloggning som skapats för det här kontot någon effekt. Inloggningen blockeras dock inte via T-SQL. Efter att kontot autentiserats mot servern har inloggningen de effektiva behörigheterna hos en Microsoft Entra-administratör, och inte hos en nyligen skapad inloggning.
- Att ändra behörigheter på ett specifikt Microsoft Entra-inloggningsobjekt stöds inte:
GRANT <PERMISSION> ON LOGIN :: <Microsoft Entra account> TO <Any other login>
- När du ändrar behörigheter för en Microsoft Entra-inloggning träder ändringarna som standard bara i kraft nästa gång inloggningen ansluter till den dedikerade SQL-poolen. Alla befintliga öppna anslutningar med inloggningen påverkas inte. Om du vill tvinga behörighetsändringar att börja gälla omedelbart kan du manuellt rensa autentiseringen och TokenAndPermUserStore, enligt beskrivningen tidigare i inaktivera eller aktivera en inloggning med ALTER LOGIN. Det här beteendet gäller även när du gör ändringar i serverrollmedlemskap med ALTER SERVER ROLE.
- I SQL Server Management Studio kontrollerar skriptkommandot för att skapa en användare inte om det redan finns en Microsoft Entra-inloggning
mastermed samma namn. Den genererar alltid T-SQL för en Microsoft Entra-användare i en innesluten databas. - Ett fel kan inträffa om du försöker skapa en inloggning eller användare från ett service principal med ett icke-unikt visningsnamn. För mer information om hur du kan åtgärda det här felet, se Namnöverväganden.
- Databasanvändare som skapats med Microsoft Entra-inloggningar kan uppleva förseningar när de tilldelas roller och behörigheter. Om du stöter på detta problem, använd följande kommandon:
- Släpp användaren från användardatabasen.
- Kör
DBCC FREESYSTEMCACHE('TokenAndPermUserStore')för att rensa säkerhetscacheminnen i databasen. - Kör
DBCC FLUSHAUTHCACHEför att rensa cachen för federerad autentiseringskontext. - Skapa användaren baserat på inloggningen.
Begränsningar för Microsoft Entra-groupsserverhuvuden
Följande begränsningar gäller för Microsoft Entra-gruppinloggningar i Azure Synapse Analytics:
- Serverroller stöds inte för Microsoft Entra-grupper.
- Om din SQL-administratör är en Microsoft Entra-grupp, stöter användare i den gruppen på vissa begränsningar när de ansluter sig. Varje Microsoft Entra-användare listas inte individuellt i
sys.server_principalstabellen. Denna begränsning har olika konsekvenser, inklusive att anrop tillSUSER_SIDreturnerarNULL. - Microsoft Entra-användarinloggningar som ingår i Microsoft Entra-gruppinloggningar skapas inte implicit. Dessa användare har inget standardschema och kan inte utföra operationer som
CREATE SCHEMAförrän du skapar en inloggning för Microsoft Entra-användaren eller tilldelar ett standardschema till gruppen. - Du kan inte ändra ägarskapet för en databas till en Microsoft Entra-grupp som databasägare.
ALTER AUTHORIZATION ON database::<mydb> TO [my_aad_group]misslyckas med ett felmeddelande:Msg 33181, Level 16, State 1, Line 4 The new owner cannot be Azure Active Directory group.