Oktatóanyag: Microsoft Entra-kiszolgálói bejelentkezések létrehozása és használata
A következőre vonatkozik: Azure SQL DatabaseAzure SQL Managed InstanceAzure 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 az alábbiakkal fog megismerkedni:
- Microsoft Entra-bejelentkezés létrehozása a virtuális
master
adatbázisban az Azure SQL Database új szintaxiskiterjesztésével - Microsoft Entra-bejelentkezéshez hozzárendelt felhasználó létrehozása a virtuális
master
adatbázisban - 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ónevek (bejelentkezések) jelenleg nyilvános előzetes verzióban érhetők el az Azure SQL Database-hez. A felügyelt Azure SQL-példány már használhatJa a Microsoft Entra-bejelentkezéseket.
Előfeltételek
- Sql Database vagy felügyelt SQL-példány 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-hez vagy felügyelt példányhoz. További információ: Microsoft Entra-hitelesítés konfigurálása és kezelése az Azure SQL-lel.
- Ez a cikk arra utasítja, hogy hozzon létre egy Microsoft Entra-bejelentkezést és egy felhasználót a virtuális
master
adatbázisban. Csak a Microsoft Entra rendszergazdája hozhat létre felhasználót a virtuálismaster
adatbázisban, ezért javasoljuk, hogy az oktatóanyag elvégzésekor használja a Microsoft Entra rendszergazdai fiókját. A szerepkörrel rendelkezőloginmanager
Microsoft Entra-tagok létrehozhatnak egy bejelentkezést, de nem egy felhasználót a virtuálismaster
adatbázisban.
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űcontoso
tartomá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,mygroup
amely 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.
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.
Futtassa az alábbi lekérdezést:
Use master CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER GO
Ellenőrizze a létrehozott bejelentkezést.
sys.server_principals
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 0
A bejelentkezés
bob@contoso.com
a virtuálismaster
adatbá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
master
adatbázisban található Microsoft Entra-bejelentkezéshez van megfeleltetve. A példánkbob@contoso.com
alapján továbbra is létrehozunk egy felhasználót a virtuálismaster
adatbázisban, mivel be szeretnénk mutatni, hogy a felhasználót speciális szerepkörökhöz kell hozzáadni. A virtuálismaster
adatbázisban csak Microsoft Entra-rendszergazda vagy SQL Server-rendszergazda hozhat létre felhasználókat.A virtuális
master
adatbázist használjuk, de átválthat egy tetszőleges adatbázisra, ha más adatbázisokban szeretne felhasználókat létrehozni. Futtassa az alábbi lekérdezést.Use master CREATE USER [bob@contoso.com] FROM LOGIN [bob@contoso.com]
Tipp.
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.Ellenőrizze a létrehozott felhasználót.
sys.database_principals
Hajtsa 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 a csatlakoztatott adatbázison belül. 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.
For example, CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER
.
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.
Megjegyzés:
Az itt említett kiszolgálószintű szerepkörök nem támogatottak a Microsoft Entra-csoportok esetében.
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ásnév a Microsoft Entra-azonosítóban.
A példánkban a felhasználót bob@contoso.com
hoztuk létre. Adjunk a felhasználónak dbmanager és loginmanager szerepkört.
Futtassa az alábbi 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 DISABLE
ENABLE
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.
Kapcsolódó információk
További információkért és példákért lásd: