Langkah-langkah berikut menguraikan proses pembuatan server logis Azure SQL Database baru dan database baru dengan identitas terkelola yang ditetapkan oleh pengguna.
Telusuri halaman opsi Pilih penyebaran SQL di portal Azure.
Jika Anda belum masuk ke portal Azure, masuk jika diminta.
Di bawah database SQL, biarkan Jenis sumber daya diatur ke Database tunggal dan pilih Buat.
Pada tab Dasar formulir Buat Database SQL, di bawah Detail proyek, pilih Langganan Azure yang diinginkan.
Untuk Grup sumber daya, pilih Buat baru, masukkan nama untuk grup sumber daya, lalu pilih OK.
Untuk Nama database masukkan nama database yang Anda inginkan.
Untuk Server, pilih Buat baru,dan isi formulir Server baru dengan nilai berikut ini:
- Nama server: Masukkan nama server unik. Nama server harus unik secara global untuk semua server di Azure, bukan hanya unik dalam langganan.
- Masuk admin server: Masukkan ID masuk admin, misalnya:
azureuser
.
- Kata sandi: Masukkan kata sandi yang memenuhi persyaratan sandi, dan masukkan lagi di bidang Konfirmasi sandi.
- Lokasi: Pilih lokasi dari menu drop-down
Pilih Berikutnya: Jaringan di bagian bawah halaman.
Pada tab Jaringan, untuk metode Konektivitas, pilih Titik akhir publik.
Untuk aturan Firewall, atur Tambahkan alamat IP klien saat ini ke Ya. Biarkan Izinkan layanan dan sumber daya Azure untuk mengakses server ini diatur ke Tidak.
Pilih Berikutnya: Keamanan di bagian bawah halaman.
Pada tab Keamanan, di bawah Identitas, pilih Konfigurasikan Identitas.
Pada panel Identitas , di bawah Identitas terkelola yang ditetapkan pengguna, pilih Tambahkan. Pilih Langganan yang diinginkan, lalu di Identitas terkelola yang ditetapkan oleh pengguna pilih identitas terkelola yang ditetapkan pengguna yang diinginkan dari langganan yang dipilih. Kemudian pilih tombol Pilih.
Di bagian Identitas utama, pilih identitas terkelola yang ditetapkan pengguna yang sama dengan yang dipilih pada langkah sebelumnya.
Catatan
Jika identitas terkelola yang ditetapkan sistem adalah identitas utama, bidang Identitas utama harus kosong.
Pilih Terapkan
Pilih Tinjau + buat di bagian bawah halaman
Pada halaman Tinjau + buat, setelah mengulas, pilih Buat.
Perintah Azure CLI az sql server create
digunakan untuk menyediakan server logis Azure SQL baru. Perintah di bawah ini akan menyediakan server baru dengan identitas terkelola yang ditetapkan oleh pengguna. Contohnya juga akan mengaktifkan autentikasi khusus Microsoft Entra, dan mengatur admin Microsoft Entra untuk server.
Login Server SQL Administrator akan dibuat secara otomatis dan kata sandi akan diatur ke kata sandi acak. Karena konektivitas Autentikasi SQL dinonaktifkan dengan pembuatan server ini, login SQL Administrator tidak akan digunakan.
Admin Microsoft Entra server akan menjadi akun yang Anda tetapkan untuk <AzureADAccount>
, dan dapat digunakan untuk mengelola server.
Ganti nilai berikut dalam contoh:
<subscriptionId>
: ID langganan Anda dapat ditemukan di portal Microsoft Azure
<ResourceGroupName>
: Nama grup sumber daya untuk server logis Anda
<managedIdentity>
: Identitas terkelola yang ditetapkan oleh pengguna. Dapat juga digunakan sebagai identitas utama.
<primaryIdentity>
: Identitas utama yang ingin Anda gunakan sebagai identitas server
<AzureADAccount>
: Dapat berupa pengguna atau grup Microsoft Entra. Misalnya: DummyLogin
<AzureADAccountSID>
: ID Objek Microsoft Entra untuk pengguna
<ServerName>
: Gunakan nama server logis yang unik
<Location>
: Lokasi server, seperti westus
, atau centralus
subscription_id=<subscriptionId>
resource_group=<ResourceGroupName>
managed_identity=<managedIdentity>
primary_identity=<primaryIdentity>
azure_ad_account=<AzureADAccount>
azure_ad_account_sid=<AzureADAccountSID>
server_name=<ServerName>
location=<Location>
az sql server create \
--assign-identity \
--identity-type UserAssigned \
--user-assigned-identity-id /subscriptions/$subscription_id/resourceGroups/$resource_group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$managed_identity \
--primary-user-assigned-identity-id /subscriptions/$subscription_id/resourceGroups/$resource_group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$primary_identity \
--enable-ad-only-auth \
--external-admin-principal-type User \
--external-admin-name $azure_ad_account \
--external-admin-sid $azure_ad_account_sid \
-g $resource_group \
-n $server_name \
-l $location
Untuk informasi selengkapnya, lihat buat server sql az.
Catatan
Contoh di atas menyediakan server dengan hanya identitas terkelola yang ditetapkan oleh pengguna. Anda dapat mengatur --identity-type
menjadi UserAssigned,SystemAssigned
jika Anda ingin kedua jenis identitas terkelola dibuat dengan server.
Untuk memeriksa status server setelah pembuatan, lihat perintah berikut:
az sql server show --name <ServerName> --resource-group <ResourceGroupName> --expand-ad-admin
Perintah PowerShell New-AzSqlServer
digunakan untuk menyediakan server logis Azure SQL baru. Perintah di bawah ini akan menyediakan server baru dengan identitas terkelola yang ditetapkan oleh pengguna. Contohnya juga akan mengaktifkan autentikasi khusus Microsoft Entra, dan mengatur admin Microsoft Entra untuk server.
Login Server SQL Administrator akan dibuat secara otomatis dan kata sandi akan diatur ke kata sandi acak. Karena konektivitas Autentikasi SQL dinonaktifkan dengan pembuatan server ini, login SQL Administrator tidak akan digunakan.
Admin Microsoft Entra server akan menjadi akun yang Anda tetapkan untuk <AzureADAccount>
, dan dapat digunakan untuk mengelola server.
Ganti nilai berikut dalam contoh:
<ResourceGroupName>
: Nama grup sumber daya untuk server logis Anda
<Location>
: Lokasi server, seperti West US
, atau Central US
<ServerName>
: Gunakan nama server logis yang unik
<subscriptionId>
: ID langganan Anda dapat ditemukan di portal Microsoft Azure
<managedIdentity>
: Identitas terkelola yang ditetapkan oleh pengguna. Dapat juga digunakan sebagai identitas utama
<primaryIdentity>
: Identitas utama yang ingin Anda gunakan sebagai identitas server
<AzureADAccount>
: Dapat berupa pengguna atau grup Microsoft Entra. Misalnya: DummyLogin
$server = @{
ResourceGroupName = "<ResourceGroupName>"
Location = "<Location>"
ServerName = "<ServerName>"
ServerVersion = "12.0"
AssignIdentity = $true
IdentityType = "UserAssigned"
UserAssignedIdentityId = "/subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>"
PrimaryUserAssignedIdentityId = "/subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<primaryIdentity>"
ExternalAdminName = "<AzureADAccount>"
EnableActiveDirectoryOnlyAuthentication = $true
}
New-AzSqlServer @server
Untuk informasi lebih lanjut, lihat New-AzSqlServer.
Catatan
Contoh di atas menyediakan server dengan hanya identitas terkelola yang ditetapkan oleh pengguna. Anda dapat mengatur -IdentityType
menjadi "UserAssigned,SystemAssigned"
jika Anda ingin kedua jenis identitas terkelola dibuat dengan server.
Untuk memeriksa status server setelah pembuatan, lihat perintah berikut:
Get-AzSqlServer -ResourceGroupName "<ResourceGroupName>" -ServerName "<ServerName>" -ExpandActiveDirectoryAdministrator
Server - Buat Atau Perbarui REST API dapat digunakan untuk membuat server logis dengan identitas terkelola yang ditetapkan oleh pengguna.
Skrip di bawah ini akan menyediakan server logis, mengatur admin Microsoft Entra sebagai <AzureADAccount>
, dan mengaktifkan autentikasi khusus Microsoft Entra. Login Administrator SQL server juga akan dibuat secara otomatis dan kata sandi akan diatur ke kata sandi acak. Karena konektivitas Autentikasi SQL dinonaktifkan dengan provisi ini, login SQL Administrator tidak akan digunakan.
Admin Microsoft Entra, <AzureADAccount>
dapat digunakan untuk mengelola server saat provisi selesai.
Ganti nilai berikut dalam contoh:
<tenantId>
: Dapat ditemukan dengan masuk ke portal Azure, dan masuk ke sumber daya ID Microsoft Entra Anda. Di panel Ringkasan, Anda akan melihat ID Penyewa
<subscriptionId>
: ID langganan Anda dapat ditemukan di portal Microsoft Azure
<ServerName>
: Gunakan nama server logis yang unik
<ResourceGroupName>
: Nama grup sumber daya untuk server logis Anda
<AzureADAccount>
: Dapat berupa pengguna atau grup Microsoft Entra. Misalnya: DummyLogin
<Location>
: Lokasi server, seperti westus2
, atau centralus
<objectId>
: Dapat ditemukan dengan masuk ke portal Azure, dan masuk ke sumber daya ID Microsoft Entra Anda. Di panel Pengguna, cari pengguna Microsoft Entra dan temukan ID Objek mereka
<managedIdentity>
: Identitas terkelola yang ditetapkan oleh pengguna. Dapat juga digunakan sebagai identitas utama
<primaryIdentity>
: Identitas utama yang ingin Anda gunakan sebagai identitas server
Import-Module Azure
Import-Module MSAL.PS
$tenantId = '<tenantId>'
$clientId = '1950a258-227b-4e31-a9cf-717495945fc2' # Static Microsoft client ID used for getting a token
$subscriptionId = '<subscriptionId>'
$uri = "urn:ietf:wg:oauth:2.0:oob"
$authUrl = "https://login.windows.net/$tenantId"
$serverName = "<ServerName>"
$resourceGroupName = "<ResourceGroupName>"
Login-AzAccount -tenantId $tenantId
# login as a user with SQL Server Contributor role or higher
# Get a token
$result = Get-MsalToken -RedirectUri $uri -ClientId $clientId -TenantId $tenantId -Scopes "https://management.core.windows.net/.default"
#Authetication header
$authHeader = @{
'Content-Type'='application\json; '
'Authorization'=$result.CreateAuthorizationHeader()
}
# Enable Azure AD-only auth and sets a user-managed identity as the server identity
# No server admin is specified, and only Azure AD admin and Azure AD-only authentication is set to true
# Server admin (login and password) is generated by the system
# The sid is the Azure AD Object ID for the user
# Replace all values in a <>
$body = '{
"location": "<Location>",
"identity": {"type" : "UserAssigned", "UserAssignedIdentities" : {"/subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>" : {}}},
"properties": { "PrimaryUserAssignedIdentityId":"/subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<primaryIdentity>","administrators":{ "login":"<AzureADAccount>", "sid":"<objectId>", "tenantId":"<tenantId>", "principalType":"User", "azureADOnlyAuthentication":true }
}
}'
# Provision the server
Invoke-RestMethod -Uri https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Sql/servers/$serverName/?api-version=2020-11-01-preview -Method PUT -Headers $authHeader -Body $body -ContentType "application/json"
Catatan
Contoh di atas menyediakan server dengan hanya identitas terkelola yang ditetapkan oleh pengguna. Anda dapat mengatur "type"
menjadi "UserAssigned,SystemAssigned"
jika Anda ingin kedua jenis identitas terkelola dibuat dengan server.
Untuk memeriksa status server, Anda dapat menggunakan skrip berikut:
$uri = 'https://management.azure.com/subscriptions/'+$subscriptionId+'/resourceGroups/'+$resourceGroupName+'/providers/Microsoft.Sql/servers/'+$serverName+'?api-version=2020-11-01-preview&$expand=administrators/activedirectory'
$responce=Invoke-WebRequest -Uri $uri -Method PUT -Headers $authHeader -Body $body -ContentType "application/json"
$responce.statuscode
$responce.content
Berikut adalah contoh templat ARM yang membuat server logis Azure SQL Database dengan identitas terkelola yang ditetapkan pengguna. Templat ini juga menambahkan set admin Microsoft Entra untuk server dan mengaktifkan autentikasi khusus Microsoft Entra, tetapi ini dapat dihapus dari contoh templat.
Untuk informasi selengkapnya dan template ARM, lihat Template Azure Resource Manager untuk Azure SQL Database & SQL Managed Instance.
Gunakan Penyebaran khusus di portal Microsoft Azure, dan Buat template Anda sendiri di editor. Selanjutnya, Simpan konfigurasi setelah Anda menempelkan pada contoh.
Untuk mendapatkan ID Sumber Daya identitas terkelola yang ditetapkan oleh pengguna, telusuri Identitas Terkelola di portal Microsoft Azure. Temukan identitas terkelola Anda, dan buka Properti. Contoh ID Sumber Daya UMI Anda akan terlihat seperti /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.1",
"parameters": {
"server": {
"type": "string",
"defaultValue": "[uniqueString('sql', resourceGroup().id)]",
"metadata": {
"description": "The name of the logical server."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
},
"aad_admin_name": {
"type": "String",
"metadata": {
"description": "The name of the Azure AD admin for the SQL server."
}
},
"aad_admin_objectid": {
"type": "String",
"metadata": {
"description": "The Object ID of the Azure AD admin."
}
},
"aad_admin_tenantid": {
"type": "String",
"defaultValue": "[subscription().tenantId]",
"metadata": {
"description": "The Tenant ID of the Azure Active Directory"
}
},
"aad_admin_type": {
"defaultValue": "User",
"allowedValues": [
"User",
"Group",
"Application"
],
"type": "String"
},
"aad_only_auth": {
"defaultValue": true,
"type": "Bool"
},
"user_identity_resource_id": {
"defaultValue": "",
"type": "String",
"metadata": {
"description": "The Resource ID of the user-assigned managed identity, in the form of /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>."
}
},
"AdminLogin": {
"minLength": 1,
"type": "String"
},
"AdminLoginPassword": {
"type": "SecureString"
}
},
"resources": [
{
"type": "Microsoft.Sql/servers",
"apiVersion": "2020-11-01-preview",
"name": "[parameters('server')]",
"location": "[parameters('location')]",
"identity": {
"type": "UserAssigned",
"UserAssignedIdentities": {
"[parameters('user_identity_resource_id')]": {}
}
},
"properties": {
"administratorLogin": "[parameters('AdminLogin')]",
"administratorLoginPassword": "[parameters('AdminLoginPassword')]",
"PrimaryUserAssignedIdentityId": "[parameters('user_identity_resource_id')]",
"administrators": {
"login": "[parameters('aad_admin_name')]",
"sid": "[parameters('aad_admin_objectid')]",
"tenantId": "[parameters('aad_admin_tenantid')]",
"principalType": "[parameters('aad_admin_type')]",
"azureADOnlyAuthentication": "[parameters('aad_only_auth')]"
}
}
}
]
}