Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (csak dedikált SQL-készletek)
Ez a cikk végigvezeti a Microsoft Entra ID (korábbi nevén Azure Active Directory) által támogatott bejelentkezések létrehozásán és felhasználásán az Azure SQL virtuális master adatbázisán belül.
Ebben az oktatóanyagban a következőket sajátíthatja el:
- Microsoft Entra-bejelentkezés létrehozása a virtuális
masteradatbázisban az Azure SQL Database új szintaxiskiterjesztésével - Microsoft Entra-bejelentkezéshez hozzárendelt felhasználó létrehozása a virtuális
masteradatbázisban - Használja a
WITH OBJECT_IDszintaxist a nem egyedi megjelenítési nevekhez. - Kiszolgálói szerepkörök biztosítása Microsoft Entra-felhasználónak
- Microsoft Entra-bejelentkezés letiltása
Megjegyzés:
A Microsoft Entra kiszolgáló főelemek (bejelentkezések) jelenleg nyilvános előzetes kiadásban érhetők el az Azure SQL-adatbázishoz. Az Azure SQL Managed Instance és az SQL Server 2022 és újabb verziók már általánosan használhatják a Microsoft Entra-bejelentkezéseket.
Előfeltételek
- SQL-adatbázis vagy SQL-felügyelt példány egy adatbázissal. Tekintse meg a rövid útmutatót: Önálló Azure SQL Database-adatbázis létrehozása , ha még nem hozott létre Azure SQL Database-adatbázist, vagy rövid útmutató: Felügyelt Azure SQL-példány létrehozása.
- Microsoft Entra-hitelesítés beállítása SQL Database vagy SQL Managed Instance esetén. További információért lásd: A Microsoft Entra-hitelesítés konfigurálása és kezelése az Azure SQL.
- Ez a cikk arra utasítja, hogy hozzon létre egy Microsoft Entra-bejelentkezést és egy felhasználót a virtuális
masteradatbázisban. Csak a Microsoft Entra rendszergazdája hozhat létre felhasználót a virtuálismasteradatbázisban, ezért javasoljuk, hogy az oktatóanyag elvégzésekor használja a Microsoft Entra rendszergazdai fiókját. Aloginmanagerszerepkörű Microsoft Entra-szerepkör felhasználó létrehozhat bejelentkezést, de nem hozhat létre felhasználót a virtuálismasteradatbázisban.
Megjegyzés:
Olyan szervezetek esetében, amelyek a Microsoft Entra azonosítóban (különösen szolgáltatási főnevek esetében) nem egyedi megjelenítési nevekkel foglalkoznak, győződjön meg arról, hogy rendelkezésre állnak az objektumazonosítói adatok minden olyan szolgáltatási főnévhez, amelyhez bejelentkezéseket tervez létrehozni. A WITH OBJECT_ID szintaxisbővítmény segíthet megoldani ezeket a forgatókönyveket.
Microsoft Entra-bejelentkezés létrehozása
Azure SQL Database-bejelentkezés létrehozása Microsoft Entra-fiókhoz. A példánkban azt fogjuk használni
bob@contoso.com, amely a Microsoft Entra nevűcontosotartományunkban létezik. Bejelentkezés microsoft Entra-csoportból vagy szolgáltatásnévből (alkalmazásokból) is létrehozható. Ez például egy Microsoft Entra-csoport,mygroupamely az adott csoporthoz tartozó Microsoft Entra-fiókokból áll. További információ: CREATE LOGIN (Transact-SQL).Megjegyzés:
Az első Microsoft Entra-bejelentkezést a Microsoft Entra rendszergazdájának kell létrehoznia. A Microsoft Entra rendszergazdája lehet Microsoft Entra-felhasználó vagy -csoport. Az SQL-bejelentkezések nem hozhatnak létre Microsoft Entra-bejelentkezéseket.
Jótanács
Ha problémákat tapasztal a nem egyedi megjelenítési nevek terén a Microsoft Entra ID-ben, használhatja a szintaxisbővítményt
WITH OBJECT_ID. Ez a funkció különösen hasznos az ismétlődő megjelenítendő névvel rendelkező szolgáltatásnevek esetében. Például:CREATE LOGIN [myapp4466e] FROM EXTERNAL PROVIDER WITH OBJECT_ID = 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb'További információ: Microsoft Entra bejelentkezések és nem egyedi megjelenítési névvel rendelkező felhasználók.
Az SQL Server Management Studio (SSMS) használatával jelentkezzen be az SQL Database-be a kiszolgálóhoz beállított Microsoft Entra rendszergazdai fiókkal.
Bontsa ki az Adatbázisok> Rendszeradatbázisok elemet. Kattintson a jobb gombbal az adatbázisra,
masterés válassza az Új lekérdezés lehetőséget egy új lekérdezési ablak megnyitásához azmasteradatbázis környezetében.Hajtsa végre a következő lekérdezést:
CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER GOEllenőrizze a
sys.server_principals-ben létrehozott bejelentkezést. Hajtsa végre a következő lekérdezést:SELECT name, type_desc, type, is_disabled FROM sys.server_principals WHERE type_desc like 'external%'A következőhöz hasonló kimenet jelenik meg:
Name type_desc type is_disabled bob@contoso.com EXTERNAL_LOGIN E 0A bejelentkezés
bob@contoso.coma virtuálismasteradatbázisban lett létrehozva.
Felhasználó létrehozása Microsoft Entra-bejelentkezésből
Most, hogy létrehoztunk egy Microsoft Entra-bejelentkezést, létrehozhatunk egy adatbázisszintű Microsoft Entra-felhasználót, amely a virtuális
masteradatbázisban található Microsoft Entra-bejelentkezéshez van megfeleltetve. A példánkbob@contoso.comalapján továbbra is létrehozunk egy felhasználót a virtuálismasteradatbázisban, mivel be szeretnénk mutatni, hogy a felhasználót speciális szerepkörökhöz kell hozzáadni. A virtuálismasteradatbázisban csak Microsoft Entra-rendszergazda vagy SQL Server-rendszergazda hozhat létre felhasználókat.Továbbra is a virtuális
masteradatbázist használjuk, de újracsatlakozhat egy tetszőleges adatbázishoz, ha más adatbázisokban szeretne felhasználókat létrehozni. Futtassa a következő lekérdezést.CREATE USER [bob@contoso.com] FROM LOGIN [bob@contoso.com]Jótanács
Bár nem szükséges a Microsoft Entra felhasználói aliasok használata (például
bob@contoso.com), ajánlott ugyanazt az aliast használni a Microsoft Entra-felhasználók és a Microsoft Entra-bejelentkezések esetében.Ha közvetlenül egy külső szolgáltatótól kell létrehoznia egy felhasználót egy adott objektumazonosítóval (például a nemunique megjelenítési névvel kapcsolatos problémák megoldásához), a következőket is használhatja:
CREATE USER [user_name] FROM EXTERNAL PROVIDER WITH OBJECT_ID = 'objectid'Ellenőrizze a létrehozott felhasználót.
sys.database_principalsHajtsa végre a következő lekérdezést:SELECT name, type_desc, type FROM sys.database_principals WHERE type_desc like 'external%'A következőhöz hasonló kimenet jelenik meg:
Name type_desc type bob@contoso.com EXTERNAL_USER E
Megjegyzés:
Továbbra is támogatott a Microsoft Entra-felhasználó Microsoft Entra-bejelentkezés nélküli létrehozására vonatkozó meglévő szintaxis. Az alábbi szintaxis végrehajtásával létrehoz egy adatbázist tartalmazó felhasználót az adott adatbázison belül, amelyhez csatlakozik. Fontos, hogy ez a felhasználó nincs semmilyen bejelentkezéshez társítva, még akkor sem, ha egy azonos nevű bejelentkezés létezik a virtuális master adatbázisban.
Például: CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER.
Microsoft Entra-bejelentkezést hozhat létre egy nem egyedi megjelenítési névvel rendelkező szolgáltatási főszereplővel. További információ: Microsoft Entra-bejelentkezések és nem egyedi megjelenítési névvel rendelkező felhasználók
Kiszolgálószintű szerepkörök biztosítása a Microsoft Entra-bejelentkezésekhez
A rögzített kiszolgálószintű szerepkörökhöz, például a ##MS_DefinitionReader#, a ##MS_ServerStateReader## vagy a ##MS_ServerStateManager## szerepkörhöz is hozzáadhat bejelentkezéseket az master adatbázisban.
Megjegyzés:
Az itt említett kiszolgálószintű szerepkörök nem támogatottak a Microsoft Entra-csoportok számára.
ALTER SERVER ROLE ##MS_DefinitionReader## ADD MEMBER [AzureAD_object];
ALTER SERVER ROLE ##MS_ServerStateReader## ADD MEMBER [AzureAD_object];
ALTER SERVER ROLE ##MS_ServerStateManager## ADD MEMBER [AzureAD_object];
Az engedélyek csak akkor lépnek érvénybe, ha a felhasználó újracsatlakozik. Ürítse ki a DBCC-gyorsítótárat is:
DBCC FLUSHAUTHCACHE
DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
Annak ellenőrzéséhez, hogy mely Microsoft Entra-bejelentkezések tartoznak kiszolgálószintű szerepkörökhöz, futtassa a következő lekérdezést:
SELECT roles.principal_id AS RolePID,roles.name AS RolePName,
server_role_members.member_principal_id AS MemberPID, members.name AS MemberPName
FROM sys.server_role_members AS server_role_members
INNER JOIN sys.server_principals AS roles
ON server_role_members.role_principal_id = roles.principal_id
INNER JOIN sys.server_principals AS members
ON server_role_members.member_principal_id = members.principal_id;
Speciális szerepkörök megadása a Microsoft Entra-felhasználók számára
Az SQL Database speciális szerepkörei hozzárendelhetők a virtuális master adatbázis felhasználóihoz.
Ahhoz, hogy a felhasználónak különleges adatbázis-szerepköröket adjon, a felhasználónak léteznie kell a virtuális master adatbázisban.
Ha felhasználót szeretne hozzáadni egy szerepkörhöz, futtassa a következő lekérdezést:
ALTER ROLE [dbmanager] ADD MEMBER [AzureAD_object]
Ha el szeretne távolítani egy felhasználót egy szerepkörből, futtassa a következő lekérdezést:
ALTER ROLE [dbmanager] DROP MEMBER [AzureAD_object]
AzureAD_object lehet Microsoft Entra felhasználó, csoport vagy szolgáltatási főszereplő a Microsoft Entra azonosítója rendszerében.
A példánkban a felhasználót bob@contoso.comhoztuk létre. Adjunk a felhasználónak dbmanager és loginmanager szerepkört.
Hajtsa végre a következő lekérdezést:
ALTER ROLE [dbmanager] ADD MEMBER [bob@contoso.com] ALTER ROLE [loginmanager] ADD MEMBER [bob@contoso.com]Ellenőrizze az adatbázis szerepkör-hozzárendelését a következő lekérdezés futtatásával:
SELECT DP1.name AS DatabaseRoleName, isnull (DP2.name, 'No members') AS DatabaseUserName FROM sys.database_role_members AS DRM RIGHT OUTER JOIN sys.database_principals AS DP1 ON DRM.role_principal_id = DP1.principal_id LEFT OUTER JOIN sys.database_principals AS DP2 ON DRM.member_principal_id = DP2.principal_id WHERE DP1.type = 'R'and DP2.name like 'bob%'A következőhöz hasonló kimenet jelenik meg:
DatabaseRoleName DatabaseUserName dbmanager bob@contoso.com loginmanager bob@contoso.com
Nem kötelező – Bejelentkezés letiltása
Az ALTER LOGIN (Transact-SQL) DDL szintaxissal engedélyezheti vagy letilthatja a Microsoft Entra-bejelentkezést az Azure SQL Database-ben.
ALTER LOGIN [bob@contoso.com] DISABLE
Ahhoz, hogy a DISABLEENABLE módosítások azonnal érvénybe léphessenek, a hitelesítési gyorsítótárat és a TokenAndPermUserStore gyorsítótárat a következő T-SQL-parancsokkal kell törölni:
DBCC FLUSHAUTHCACHE
DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
Ellenőrizze, hogy a bejelentkezés le lett-e tiltva a következő lekérdezés végrehajtásával:
SELECT name, type_desc, type
FROM sys.server_principals
WHERE is_disabled = 1
Ennek a használati esete az lenne, ha csak olvasási jogosultságot engedélyezne a georeplikákon, de megtagadná a kapcsolatot egy elsődleges kiszolgálón.