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ális master 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ális master adatbázisban.

Microsoft Entra-bejelentkezés létrehozása

  1. 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, 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.

  2. 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.

  3. Futtassa az alábbi lekérdezést:

    Use master
    CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
    GO
    
  4. 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 
    
  5. A bejelentkezés bob@contoso.com a virtuális master adatbázisban lett létrehozva.

Felhasználó létrehozása Microsoft Entra-bejelentkezésből

  1. 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ánk bob@contoso.com alapján továbbra is létrehozunk egy felhasználót a virtuális master adatbázisban, mivel be szeretnénk mutatni, hogy a felhasználót speciális szerepkörökhöz kell hozzáadni. A virtuális master adatbázisban csak Microsoft Entra-rendszergazda vagy SQL Server-rendszergazda hozhat létre felhasználókat.

  2. 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.

  3. 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.comhoztuk létre. Adjunk a felhasználónak dbmanager és loginmanager szerepkört.

  1. Futtassa az alábbi lekérdezést:

    ALTER ROLE [dbmanager] ADD MEMBER [bob@contoso.com] 
    ALTER ROLE [loginmanager] ADD MEMBER [bob@contoso.com] 
    
  2. 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.

Kapcsolódó információk

További információkért és példákért lásd: