Megosztás a következőn keresztül:


Oktatóanyag: Microsoft Entra-kiszolgálói bejelentkezések létrehozása és használata

A következőkre 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 a következőket sajátíthatja el:

  • 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
  • Használja a WITH OBJECT_ID szintaxist 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

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

  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.

    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.

  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. 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 az master adatbázis környezetében.

  4. Hajtsa végre a következő lekérdezést:

    CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
    GO
    
  5. Ellenő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      0
    
  6. 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. Továbbra is a virtuális master adatbá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'
    
  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 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.

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