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


Microsoft Entra-bejelentkezések és nemunique megjelenítési névvel rendelkező felhasználók

A következőkre vonatkozik: SQL Server 2025 (17.x) Azure SQL Database Azure SQL Managed Instance Microsoft Fabric

Ez a cikk bemutatja, hogyan hozhat létre Microsoft Entra-bejelentkezéseket és nemunique megjelenítési neveket használó felhasználókat a T-SQL Object_ID szintaxis használatával az Azure SQL Database, a Fabric SQL Database, az Azure SQL Managed Instance és az SQL Server 2025 és újabb verzióiban.

Megjegyzés:

Létrehozhat felhasználókat a Fabric SQL-adatbázisban, de bejelentkezéseket nem.

Áttekintés

A Microsoft Entra ID támogatja a szolgáltatásnevek hitelesítését. A Microsoft Entra ID-ban nem egyedi megjelenítendő névvel rendelkező egyszerű szolgáltatásnév használata azonban hibákhoz vezet, amikor a bejelentkezést vagy a felhasználót az SQL Serverben, az Azure SQL Database-ben és a felügyelt Azure SQL-példányban hozza létre.

Ha például az alkalmazás myapp nem egyedi, a következő hibába ütközhet:

Msg 33131, Level 16, State 1, Line 4 
Principal 'myapp' has a duplicate display name. Make the display name unique in Azure Active Directory and execute this statement again. 

A következő T-SQL-utasítás futtatásakor:

CREATE LOGIN [myapp] FROM EXTERNAL PROVIDER 

A WITH OBJECT_ID bővítmény

Az ismétlődő megjelenítendő név hiba azért fordul elő, mert a Microsoft Entra ID megengedi a Microsoft Entra alkalmazás (szolgáltatásnév) neveinek ismétlődését, míg az SQL Server és az Azure SQL egyedi neveket igényel a Microsoft Entra azonosítóval történő bejelentkezések és felhasználók létrehozásához. A probléma megoldása érdekében a bejelentkezések és a felhasználók létrehozására szolgáló adatdefiníciós nyelv (DDL) utasítás ki lett terjesztve, hogy tartalmazza az Azure-erőforrás objektumazonosítóját a WITH OBJECT_ID záradékkal.

Megjegyzés:

A Microsoft Entra ID-ban a legtöbb nem egyedi megjelenítési név a szolgáltatás főazonosítókhoz kapcsolódik, de esetenként a csoportnevek is lehetnek nem egyediek. A Microsoft Entra felhasználónevei egyediek, mivel két felhasználó nem rendelkezhet ugyanazzal a felhasználónévvel. Az alkalmazásregisztráció (szolgáltatásnév) azonban olyan megjelenítendő névvel hozható létre, amely megegyezik a felhasználónévvel.

Ha a szolgáltatásnév megjelenítendő neve nem duplikált, az alapértelmezett CREATE LOGIN vagy CREATE USER az utasítást kell használni. A WITH OBJECT_ID bővítmény egy hibaelhárítási javítóelem, amelyet nemunique szolgáltatásnévvel való használatra implementáltak. Nem ajánlott egyedi szolgáltatásfelelőssel használni. A szolgáltatásnév WITH OBJECT_ID bővítményének utótag hozzáadása nélkül történő használata sikeresen lefut, de nem lesz egyértelmű, hogy melyik szolgáltatásnévhez lett létrehozva a bejelentkezés vagy a felhasználó. Javasoljuk, hogy hozzon létre egy aliast egy utótag használatával a szolgáltatásnév egyedi azonosításához. A WITH OBJECT_ID bővítmény az SQL Server 2025-ös és újabb verzióiban támogatott.

T-SQL bejelentkezés vagy felhasználói szintaxis létrehozása nem egyedi megjelenítési nevekhez

CREATE LOGIN [login_name] FROM EXTERNAL PROVIDER 
  WITH OBJECT_ID = 'objectid'
CREATE USER [user_name] FROM EXTERNAL PROVIDER 
  WITH OBJECT_ID = 'objectid'

A T-SQL DDL támogatási bővítményével bejelentkezéseket vagy objektumazonosítóval rendelkező felhasználókat hozhat létre, elkerülheti a 33131-et , és megadhat egy aliast az objektumazonosítóval létrehozott bejelentkezéshez vagy felhasználóhoz. Az alábbi T-SQL-minta például létrehoz egy bejelentkezést myapp4466e az alkalmazás objektumazonosítójával aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb.

CREATE LOGIN [myapp4466e] FROM EXTERNAL PROVIDER 
  WITH OBJECT_ID = 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb' 
  • A T-SQL-lekérdezés végrehajtásához a megadott objektumazonosítónak abban a Microsoft Entra-bérlőben kell lennie, amelyben az SQL-erőforrás található. Ellenkező esetben a CREATE parancs a következő hibaüzenettel hiúsul meg: Msg 37545, Level 16, State 1, Line 1 '' is not a valid object id for '' or you do not have permission.
  • A bejelentkezésnek vagy a felhasználónévnek tartalmaznia kell az eredeti szolgáltatásazonosítót, amelyet egy felhasználó által definiált utótag egészít ki, a CREATE LOGIN vagy CREATE USER utasítás használatakor. Javasolt gyakorlatként a szuffiks az objektumazonosító egy kezdeti részét is tartalmazhatja. Például myapp2ba6c az objektumazonosítóhoz bbbbbbbb-1111-2222-3333-cccccccccccc. Azonban egyéni utótagot is definiálhat. Az objektumazonosító utótagjának létrehozása nem kötelező.

Ez az elnevezési konvenció azt javasolja, hogy egyértelműen társítsák az adatbázis-felhasználót vagy a bejelentkezést az objektumához a Microsoft Entra ID-ben.

Megjegyzés:

Az alias megfelel a T-SQL-specifikációnak sysname, beleértve a legfeljebb 128 karakter hosszúságot is. Javasoljuk, hogy az utótagot az objektumazonosító első öt karakterére korlátozza.

A Microsoft Entra ID szolgáltatási főszereplő megjelenítendő neve nincs szinkronizálva az adatbázis bejelentkezéssel vagy a felhasználói álnévvel. Futtatása CREATE LOGIN vagy CREATE USER nem befolyásolja az Azure Portalon megjelenítendő nevet. Hasonlóképpen, a Microsoft Entra ID megjelenítendő nevének módosítása nem befolyásolja az adatbázis bejelentkezését vagy a felhasználói aliast.

Az alkalmazáshoz létrehozott felhasználó azonosítása

A nem egyedi szolgáltatásazonosítók esetében fontos ellenőrizni, hogy a Microsoft Entra alias a megfelelő alkalmazáshoz van-e kötve. Annak ellenőrzése, hogy a felhasználó a megfelelő szolgáltatásnévhez (alkalmazáshoz) lett-e létrehozva:

  1. Kérje le az alkalmazás alkalmazásazonosítóját vagy a Microsoft Entra-csoport objektumazonosítóját az Azure SQL-ben vagy az SQL Serverben létrehozott felhasználótól. Tekintse meg a következő lekérdezéseket:

    • A szolgáltatásnév alkalmazásazonosítójának a létrehozott felhasználótól való lekéréséhez hajtsa végre a következő lekérdezést:

      SELECT CAST(sid as uniqueidentifier) ApplicationID, create_date FROM sys.server_principals WHERE NAME = 'myapp2ba6c' 
      

      Példakimenet:

      Képernyőkép az SQL Server Management Studio (SSMS) lekérdezési kimenetéről az alkalmazásazonosítóhoz.

      Az alkalmazásazonosító a megadott bejelentkezési vagy felhasználónév biztonsági azonosítószámából (SID) lesz konvertálva, amelyet a következő T-SQL-lekérdezés végrehajtásával, az utolsó néhány számjegy összehasonlításával és dátumok létrehozásával tudunk megerősíteni:

      SELECT SID, create_date FROM sys.server_principals WHERE NAME = 'myapp2ba6c' 
      

      Példakimenet:

      Képernyőkép az alkalmazás SID-jének SQL Server Management Studio (SSMS) lekérdezési kimenetéről.

    • A Microsoft Entra-csoport objektumazonosítójának a létrehozott felhasználótól való lekéréséhez hajtsa végre a következő lekérdezést:

      SELECT CAST(sid as uniqueidentifier) ObjectID, createdate FROM sys.sysusers WHERE NAME = 'myappgroupd3451b' 
      

      Példakimenet:

      Képernyőkép az SQL Server Management Studio (SSMS) lekérdezési kimenetéről a Microsoft Entra-csoport objektumazonosítójával kapcsolatban.

      Ha ellenőrizni szeretné a microsoft entra csoport biztonsági azonosítóját a létrehozott felhasználótól, hajtsa végre a következő lekérdezést:

      SELECT SID, createdate FROM sys.sysusers WHERE NAME = 'myappgroupd3451b' 
      

      Példakimenet:

      Képernyőkép az SQL Server Management Studio (SSMS) lekérdezési kimenetéről a csoport SID-jén.

    • Az alkalmazás objektumazonosítójának és alkalmazásazonosítójának a PowerShell használatával történő lekéréséhez hajtsa végre a következő parancsot:

      Get-AzADApplication -DisplayName "myapp2ba6c"
      
  2. Lépjen az Azure Portalra, és a nagyvállalati vagy a Microsoft Entra-csoport erőforrásában ellenőrizze az alkalmazásazonosítót vagy az objektumazonosítót . Ellenőrizze, hogy megegyezik-e az előző lekérdezésből beszerzettvel.

Megjegyzés:

Amikor egy felhasználót egy szolgáltatásfőnévből hoz létre, az objektumazonosítóra van szükség a WITH OBJECT_ID T-SQL utasítással rendelkező CREATE záradék használatakor. Ez eltér az SQL Server aliasának ellenőrzésekor visszaadott alkalmazásazonosítótól . Ezzel az ellenőrzési folyamattal azonosíthatja az SQL-aliashoz társított szolgáltatásnevet vagy csoportot a Microsoft Entra ID-ban, és megakadályozhatja az esetleges hibákat, amikor objektumazonosítóval rendelkező bejelentkezéseket vagy felhasználókat hoz létre.

A megfelelő objektumazonosító megkeresése

A szolgáltatásnév objektumazonosítójával kapcsolatos információkért tekintse meg a Szolgáltatásnév objektumot. A szolgáltatásnév objektumazonosítóját az Alkalmazás neve mellett találja az Azure Portalon, a Nagyvállalati alkalmazások területen.

Figyelmeztetés

Az Alkalmazásregisztráció áttekintése lapon beszerzett objektumazonosító eltér a Vállalati alkalmazások áttekintési lapján beszerzett objektumazonosítótól. Ha az Alkalmazásregisztráció áttekintése lapon van, válassza ki a csatolt felügyelt alkalmazás nevét a helyi címtárban, és navigáljon a megfelelő objektumazonosítóhoz a Vállalati alkalmazások áttekintése lapon.