Migrálás újító csúcstalálkozóra:
Megtudhatja, hogyan növelheti vállalkozása teljesítményét, rugalmasságát és biztonságát az Azure-ba való migrálás és korszerűsítés, amely lehetővé teszi a mesterséges intelligencia teljes körű megvalósítását.Regisztráció
Ezt a böngészőt már nem támogatjuk.
Frissítsen a Microsoft Edge-re, hogy kihasználhassa a legújabb funkciókat, a biztonsági frissítéseket és a technikai támogatást.
Ez a cikk bemutatja, hogyan konfigurálhat egy egyszerű szolgáltatást, hogy Microsoft Entra-felhasználókat hozzon létre az Azure SQL Database-ben. Ez a funkció lehetővé teszi az Azure SQL-erőforrásokhoz való hozzáférés-kezelés programozott konfigurálását a Microsoft Entra-bérlőben lévő felhasználók és alkalmazások számára.
Csatlakozás az Azure-ba, megadva az SQL-adatbázist üzemeltető Microsoft Entra-bérlőt. A bérlőazonosító a Microsoft Entra ID-erőforrás Áttekintés lapján található az Azure Portalon. Másolja ki a bérlőazonosítót , majd futtassa a következő PowerShell-parancsot:
Cserélje le <TenantId> a bérlőazonosítót.
PowerShell
Connect-AzAccount -Tenant <TenantId>
Jegyezze fel az TenantId oktatóanyag későbbi használatra vonatkozó adatait.
Hozzon létre egy rendszer által hozzárendelt felügyelt identitást, és rendelje hozzá az Azure logikai kiszolgálóhoz. Hajtsa végre a következő PowerShell-parancsot:
Cserélje le és <ServerName> cserélje le <ResourceGroupName> az erőforrásait a Set-AzSqlServer parancsban. Ha a kiszolgáló neve az myserver.database.windows.net, cserélje le a helyére<ServerName>.myserver
Ellenőrizze, hogy a kiszolgálóidentitás hozzárendelése sikeresen megtörtént-e. Hajtsa végre a következő PowerShell-parancsot:
Cserélje le <ResourceGroupName> és <ServerName> használja az erőforrásokat. Ha a kiszolgáló neve az myserver.database.windows.net, cserélje le a helyére<ServerName>.myserver
A kimenetnek meg kell jelennie , PrincipalIdTypeés TenantId. A hozzárendelt identitás a PrincipalId.
Az identitást az Azure Portalon is ellenőrizheti.
A Microsoft Entra ID erőforrásban nyissa meg a Nagyvállalati alkalmazásokat. Írja be a logikai kiszolgáló nevét. Az erőforráson megjelenő objektumazonosító az elsődleges kiszolgálói identitás azonosítója.
Kiszolgálóidentitás hozzáadása a Címtárolvasók szerepkörhöz
A kiszolgálóidentitáshoz engedélyekre van szükség a Microsoft Entra-azonosító lekérdezéséhez a felügyeleti funkciókhoz, beleértve a Microsoft Entra-felhasználók és -bejelentkezések létrehozását, valamint a csoportbővítést, hogy felhasználói engedélyeket alkalmazzanak a Microsoft Entra-csoporttagságuk alapján. Ha visszavonják a Microsoft Entra-azonosító lekérdezésére vonatkozó kiszolgálóidentitás-engedélyeket, vagy törlik a kiszolgálóidentitást, a Microsoft Entra-hitelesítés nem működik.
Ezt a szkriptet Egy Microsoft Entra-azonosítónak Global Administrator vagy egy Privileged Role Administrator.
Az alábbi szkript engedélyt ad a Microsoft Entra Directory-olvasóknak egy olyan identitáshoz, amely az Azure SQL Database logikai kiszolgálójának felel meg.
Cserélje le a TenantId korábban összegyűjtött helyére<TenantId>.
Cserélje le <ServerName> a logikai kiszolgáló nevét. Ha a kiszolgáló neve az myserver.database.windows.net, cserélje le a helyére<ServerName>.myserver
PowerShell
# This script grants "Directory Readers" permission to a service principal representing a logical server for Azure SQL Database# It can be executed only by a user who is a member of the **Global Administrator** or **Privileged Role Administrator** role.# To check if the "Directory Readers" role was granted, re-execute this scriptImport-Module Microsoft.Graph.Authentication
$ServerIdentityName = "<ServerName>"# Enter your logical server name$TenantId = "<TenantId>"# Enter your tenant IDConnect-MgGraph -TenantId"<TenantId>" -Scopes"RoleManagement.ReadWrite.Directory,Application.Read.All"# Get Microsoft Entra "Directory Readers" role and create if it doesn't exist$roleName = "Directory Readers"$role = Get-MgDirectoryRole -Filter"DisplayName eq '$roleName'"if ($role -eq$null) {
# Instantiate an instance of the role template$roleTemplate = Get-MgDirectoryRoleTemplate -Filter"DisplayName eq '$roleName'"New-MgDirectoryRoleTemplate -RoleTemplateId$roleTemplate.Id
$role = Get-MgDirectoryRole -Filter"DisplayName eq '$roleName'"
}
# Get service principal for server$roleMember = Get-MgServicePrincipal -Filter"DisplayName eq '$ServerIdentityName'"$roleMember.Count
if ($roleMember -eq$null) {
Write-Output"Error: No service principal with name '$($ServerIdentityName)' found, make sure that ServerIdentityName parameter was entered correctly."exit
}
if (-not ($roleMember.Count -eq1)) {
Write-Output"Error: Multiple service principals with name '$($ServerIdentityName)'"Write-Output$roleMember | Format-List DisplayName, Id, AppId
exit
}
# Check if service principal is already member of Directory Readers role$isDirReader = Get-MgDirectoryRoleMember -DirectoryRoleId$role.Id -Filter"Id eq '$($roleMember.Id)'"if ($isDirReader -eq$null) {
# Add principal to Directory Readers roleWrite-Output"Adding service principal '$($ServerIdentityName)' to 'Directory Readers' role'..."$body = @{
"@odata.id"= "https://graph.microsoft.com/v1.0/directoryObjects/{$($roleMember.Id)}"
}
New-MgDirectoryRoleMemberByRef -DirectoryRoleId$role.Id -BodyParameter$bodyWrite-Output"'$($ServerIdentityName)' service principal added to 'Directory Readers' role'."
} else {
Write-Output"Service principal '$($ServerIdentityName)' is already member of 'Directory Readers' role'."
}
Megjegyzés
A szkript kimenete azt jelzi, hogy az identitás hozzá van-e rendelve a Címtárolvasók szerepkörhöz. Ha nem biztos benne, hogy az engedély meg lett-e adva, újra futtathatja a szkriptet.
A felügyelt SQL-példány címtárolvasói szerepkörének hozzárendelésével kapcsolatos hasonló megközelítésért tekintse meg a Microsoft Entra-rendszergazda (felügyelt SQL-példány) kiépítését ismertető témakört.
Éles környezetben gyakori felügyeleti gyakorlat a Címtárolvasók szerepkör hozzárendelése egy szerepkör-hozzárendelhető csoporthoz a Microsoft Entra ID-ban. Ezután a csoporttulajdonosok hozzáadhatnak felügyelt identitásokat a csoporthoz. Ez fenntartja a minimális jogosultság elvét, és megfelel annak az igénynek, hogy egy globális Rendszergazda istrator vagy privileged role Rendszergazda istrator egyenként adja meg a címtárolvasó szerepkört minden SQL-példánynak. A szolgáltatásról további információt az Azure SQL-hez készült Microsoft Entra ID címtárolvasói szerepkörében talál.
Alkalmazás létrehozása a Microsoft Entra-azonosítóban
Ez az oktatóanyag két szolgáltatásnevet használ. Az első szolgáltatásnév, a DBOwnerApp az adatbázis többi felhasználójának létrehozására szolgál. A második szolgáltatásnév, a myapp az az alkalmazás, amelyet a DBOwnerApp létrehoz egy adatbázis-felhasználót az oktatóanyag későbbi részében.
Alkalmazások regisztrálása:
Az Azure Portalon válassza a Microsoft Entra ID> Alkalmazásregisztrációk> New regisztrációt.
Az alkalmazásregisztráció létrehozása után az alkalmazás (ügyfél) azonosítójának értéke létrejön és megjelenik. Ebben az oktatóanyagban rögzítse ezt az értéket későbbi használatra.
Adja hozzá az újonnan létrehozott szolgáltatásnevet, a DBOwnerAppot felhasználóként az SQL Database-ben, és rendeljen hozzá engedélyeket.
Csatlakozás az SQL Database-hez olyan Microsoft Entra-identitással, amely rendelkezik más felhasználók létrehozására vonatkozó engedélyekkel.
Fontos
Csak a Microsoft Entra-felhasználók hozhatnak létre más Microsoft Entra-felhasználókat az Azure SQL Database-ben. Az SQL-hitelesítésen alapuló felhasználók, köztük a kiszolgáló rendszergazdája sem hozhatnak létre Microsoft Entra-felhasználót. A Microsoft Entra rendszergazdája az egyetlen felhasználó, aki kezdetben létrehozhat más Microsoft Entra-felhasználókat az SQL Database-ben. Miután a Microsoft Entra rendszergazdája létrehozott más felhasználókat, a megfelelő engedélyekkel rendelkező Microsoft Entra-felhasználók más Microsoft Entra-felhasználókat is létrehozhatnak.
Hozza létre a dbOwnerApp felhasználót az SQL Database-ben a következő T-SQL-paranccsal:
SQL
CREATEUSER [DBOwnerApp] FROMEXTERNAL PROVIDER
GO
Más Microsoft Entra-felhasználók létrehozásához legalább az ALTER ANY USER SQL-engedély szükséges. Ez az engedély a Microsoft Entra rendszergazdájaként való tagságon db_ownerés hozzárendelésen keresztül is öröklődik. Az alábbi példák három különböző lehetőséget mutatnak be a DBOwnerApp engedélyeinek hozzárendelésére, amelyek lehetővé teszik, hogy más Microsoft Entra-felhasználókat hozzon létre az adatbázisban.
A DBOwnerAppot a sp_addrolemember a következőkkel adhatja hozzá a db_owner szerepkörhöz:
SQL
EXEC sp_addrolemember 'db_owner', [DBOwnerApp]
GO
Az alábbi T-SQL-mintához hasonlóan hozzárendelheti az ALTER ANY USER engedélyt a DBOwnerApphoz :
SQL
GRANTALTERANYUSERTO [DBOwnerApp]
GO
A DBOwnerAppot Microsoft Entra-rendszergazdaként állíthatja be. Ez az Azure Portal, a PowerShell vagy az Azure CLI parancsaival végezhető el. További információ: Microsoft Entra-rendszergazda (SQL Database) kiépítése.
Felhasználó létrehozása egyszerű szolgáltatásnévvel
A következő szkripttel hozzon létre egy Microsoft Entra szolgáltatásnév-felhasználót, a myappot a DBOwnerApp szolgáltatásnév használatával:
Cserélje le a TenantId korábban összegyűjtött helyére<TenantId>.
Cserélje le a ClientId korábban összegyűjtött helyére<ClientId>.
Cserélje le <ClientSecret> a korábban létrehozott ügyféltitkot.
Cserélje le <ServerName> a logikai kiszolgáló nevét. Ha a kiszolgáló neve az myserver.database.windows.net, cserélje le a helyére<ServerName>.myserver
Cserélje le <database name> az SQL Database nevét.
PowerShell
# PowerShell script for creating a new SQL user called myapp using application DBOwnerApp with secret# DBOwnerApp is an admin for the server# Download latest MSAL - https://www.powershellgallery.com/packages/MSAL.PSImport-Module MSAL.PS
$tenantId = "<TenantId>"# Microsoft Entra tenant ID where DBOwnerApp resides$clientId = "<ClientId>"# Application (client) ID recorded earlier for DBOwnerApp$clientSecret = "<ClientSecret>"# Client secret for DBOwnerApp $scopes = "https://database.windows.net/.default"# The endpoint$result = Get-MsalToken -RedirectUri$uri -ClientId$clientId -ClientSecret (ConvertTo-SecureString$clientSecret -AsPlainText -Force) -TenantId$tenantId -Scopes$scopes$Tok = $result.AccessToken
#Write-host "token"$Tok$SQLServerName = "<ServerName>"# Logical server name $DatabaseName = "<database name>"# Azure SQL database nameWrite-Host"Create SQL connection string"$conn = New-Object System.Data.SqlClient.SQLConnection
$conn.ConnectionString = "Data Source=$SQLServerName.database.windows.net;Initial Catalog=$DatabaseName;Connect Timeout=30"$conn.AccessToken = $TokWrite-host"Connect to database and execute SQL script"$conn.Open()
$ddlstmt = 'CREATE USER [myapp] FROM EXTERNAL PROVIDER;'Write-host" "Write-host"SQL DDL command"$ddlstmt$command = New-Object -TypeName System.Data.SqlClient.SqlCommand($ddlstmt, $conn)
Write-host"results"$command.ExecuteNonQuery()
$conn.Close()
Másik lehetőségként használhatja a következő kódot: Microsoft Entra szolgáltatásnév hitelesítése az Azure SQL Database-hez. Módosítsa a szkriptet a DDL utasítás CREATE USER [myapp] FROM EXTERNAL PROVIDERvégrehajtásához. Ugyanez a szkript használható Microsoft Entra-felhasználó vagy -csoport létrehozására az adatbázisban.
Ellenőrizze, hogy a felhasználó myappja létezik-e az adatbázisban a következő parancs végrehajtásával:
SQL
SELECTname, type, type_desc, CAST(CAST(sidas varbinary(16)) as uniqueidentifier) as appId
FROM sys.database_principals
WHEREname = 'myapp'GO
Az alábbihoz hasonló kimenetnek kell megjelennie:
Output
name type type_desc appId
myapp E EXTERNAL_USER 6d228f48-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Ebben a modulban az alkalmazásregisztráció Microsoft Entra-azonosítóban való létrehozásának folyamatát ismertetjük. Ezután megismerheti a beállításokat és a konfigurációs beállításokat. Létrehozhat egy egyoldalas alkalmazást, regisztrálhat több-bérlős alkalmazást és egyéb lehetőségeket. Ennek a folyamatnak a részeként feltárjuk a felhasználók számára az alkalmazásokhoz való hozzáférést, és konfiguráljuk, hogyan és mikor használhatják az alkalmazást és annak adatait.
A Microsoft Entra ID funkcióinak bemutatása az identitásmegoldások modernizálásához, hibrid megoldások implementálásához és az identitásszabályozás implementálásához.
Az AD-alkalmazások (szolgáltatásnevek) használata támogatja a Microsoft Entra-felhasználók létrehozását az Azure SQL Database-ben és a felügyelt Azure SQL-példányban
Ismerje meg a rendszer által hozzárendelt és a felhasználó által hozzárendelt felügyelt identitásokat az Azure SQL Database-hez és az Azure SQL Managed Instance-hez készült Microsoft Entra-ban.
Megtudhatja, hogyan használhatja a Microsoft Entra ID-t az Azure SQL Database,az Azure SQL Managed Instance és a Synapse SQL használatával történő hitelesítéshez az Azure Synapse Analyticsben
A T-SQL Object_ID szintaxis használatával megtudhatja, hogyan háríthatja el a Microsoft Entra-bejelentkezések és a nemunique megjelenítési névvel rendelkező felhasználók elnevezési ütközéseit.