Bir Azure SQL Veritabanı sistem tarafından atanan yönetilen kimliği (SMI) veya kullanıcı tarafından atanan yönetilen kimliği veya kimlikleri (UMI) almak için bkz. Mantıksal sunucu veya yönetilen örnek için yönetilen kimlik alma veya ayarlama.
Aşağıdaki adımlarda, kullanıcı tarafından atanan yönetilen kimlik atanmış yeni bir Azure SQL Veritabanı mantıksal sunucu ve yeni bir veritabanı oluşturma işlemi özetlenmiştir.
Azure portalında SQL dağıtımını seç seçeneği sayfasına gidin.
Azure portalında henüz oturum açmadıysanız istendiğinde oturum açın.
SQL veritabanları'nın altında Kaynak türü'nü Tek veritabanı olarak bırakın ve Oluştur'u seçin.
SQL Veritabanı Oluştur formunun Temel Bilgiler sekmesinde, Proje ayrıntıları'nın altında istediğiniz Azure Aboneliği'ni seçin.
Kaynak grubu için Yeni oluştur'u seçin, kaynak grubunuz için bir ad girin ve Tamam'ı seçin.
Veritabanı adı alanına istediğiniz veritabanı adını girin.
Sunucu için Yeni oluştur'u seçin ve Yeni sunucu formunu aşağıdaki değerlerle doldurun:
- Sunucu adı: Benzersiz bir sunucu adı girin. Sunucu adları yalnızca abonelik içinde benzersiz değil, Azure'daki tüm sunucular için genel olarak benzersiz olmalıdır.
- Sunucu yöneticisi oturum açma bilgileri: Bir yönetici oturum açma adı girin, örneğin:
azureuser
.
- Parola: Parola gereksinimlerini karşılayan bir parola girin ve parolayı onayla alanına yeniden girin.
- Konum: Açılan listeden bir konum seçin
Sayfanın alt kısmındaki İleri: Ağ'ı seçin.
Ağ sekmesinde, Bağlantı yöntemi için Genel uç nokta'yı seçin.
Güvenlik duvarı kuralları için Geçerli istemci IP adresi ekle'yi Evet olarak ayarlayın. Azure hizmetlerinin ve kaynaklarının bu sunucuya erişmesine izin ver seçeneğini Hayır olarak bırakın.
Sayfanın alt kısmındaki İleri: Güvenlik'i seçin.
Güvenlik sekmesindeki Kimlik'in altında Kimlikleri Yapılandır'ı seçin.
Kimlik bölmesinde, Kullanıcı tarafından atanan yönetilen kimlik'in altında Ekle'yi seçin. İstenen Aboneliği seçin ve kullanıcı tarafından atanan yönetilen kimlikler'in altında seçili abonelikten istenen kullanıcı tarafından atanan yönetilen kimliği seçin. Ardından Seç düğmesini seçin.
Birincil kimlik'in altında, önceki adımda seçilen kullanıcı tarafından atanan yönetilen kimliğin aynısını seçin.
Not
Sistem tarafından atanan yönetilen kimlik birincil kimlikse, Birincil kimlik alanı boş olmalıdır.
Seçin Uygula
Sayfanın alt kısmındaki Gözden geçir ve oluştur'u seçin
Gözden Geçir + oluştur sayfasında, gözden geçirdikten sonra Oluştur'u seçin.
Azure CLI komutu az sql server create
, yeni bir mantıksal sunucu sağlamak için kullanılır. Aşağıdaki komut, kullanıcı tarafından atanan yönetilen kimlikle yeni bir sunucu sağlayacaktır. Örnek ayrıca Microsoft Entra-only kimlik doğrulamasını etkinleştirir ve sunucu için bir Microsoft Entra yöneticisi ayarlar.
Sunucu SQL Yöneticisi oturum açma bilgileri otomatik olarak oluşturulur ve parola rastgele bir parolaya ayarlanır. Bu sunucu oluşturma işlemiyle SQL Kimlik Doğrulaması bağlantısı devre dışı bırakıldığından, SQL Yöneticisi oturum açma bilgileri kullanılmaz.
Microsoft Entra yöneticisi, için <AzureADAccount>
ayarladığınız hesap olacaktır ve sunucuyu yönetmek için kullanılabilir.
Örnekteki aşağıdaki değerleri değiştirin:
<subscriptionId>
: Abonelik kimliğiniz Azure portalında bulunabilir
<ResourceGroupName>
: Mantıksal sunucunuzun kaynak grubunun adı
<managedIdentity>
: Kullanıcı tarafından atanan yönetilen kimlik. Birincil kimlik olarak da kullanılabilir.
<primaryIdentity>
: Sunucu kimliği olarak kullanmak istediğiniz birincil kimlik
<AzureADAccount>
: Microsoft Entra kullanıcısı veya grubu olabilir. Örneğin DummyLogin
<AzureADAccountSID>
: Kullanıcının Microsoft Entra Nesne Kimliği
<ServerName>
: Benzersiz bir mantıksal sunucu adı kullanın
<Location>
: Sunucunun konumu, örneğin westus
, veya 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
Daha fazla bilgi için bkz . az sql server create.
Not
Yukarıdaki örnek yalnızca kullanıcı tarafından atanan yönetilen kimliğe sahip bir sunucu sağlar. her iki yönetilen kimlik türünün de sunucuyla oluşturulmasını istiyorsanız olarak ayarlayabilirsiniz --identity-type
UserAssigned,SystemAssigned
.
Oluşturma işleminden sonra sunucu durumunu denetlemek için aşağıdaki komuta bakın:
az sql server show --name <ServerName> --resource-group <ResourceGroupName> --expand-ad-admin
PowerShell komutu New-AzSqlServer
, yeni bir Azure SQL mantıksal sunucusu sağlamak için kullanılır. Aşağıdaki komut, kullanıcı tarafından atanan yönetilen kimlikle yeni bir sunucu sağlayacaktır. Örnek ayrıca Microsoft Entra-only kimlik doğrulamasını etkinleştirir ve sunucu için bir Microsoft Entra yöneticisi ayarlar.
Sunucu SQL Yöneticisi oturum açma bilgileri otomatik olarak oluşturulur ve parola rastgele bir parolaya ayarlanır. Bu sunucu oluşturma işlemiyle SQL Kimlik Doğrulaması bağlantısı devre dışı bırakıldığından, SQL Yöneticisi oturum açma bilgileri kullanılmaz.
Microsoft Entra yöneticisi, için <AzureADAccount>
ayarladığınız hesap olacaktır ve sunucuyu yönetmek için kullanılabilir.
Örnekteki aşağıdaki değerleri değiştirin:
<ResourceGroupName>
: Mantıksal sunucunuzun kaynak grubunun adı
<Location>
: Sunucunun konumu, örneğin West US
, veya Central US
<ServerName>
: Benzersiz bir mantıksal sunucu adı kullanın
<subscriptionId>
: Abonelik kimliğiniz Azure portalında bulunabilir
<managedIdentity>
: Kullanıcı tarafından atanan yönetilen kimlik. Birincil kimlik olarak da kullanılabilir
<primaryIdentity>
: Sunucu kimliği olarak kullanmak istediğiniz birincil kimlik
<AzureADAccount>
: Microsoft Entra kullanıcısı veya grubu olabilir. Örneğin 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
Daha fazla bilgi için bkz . New-AzSqlServer.
Not
Yukarıdaki örnek yalnızca kullanıcı tarafından atanan yönetilen kimliğe sahip bir sunucu sağlar. her iki yönetilen kimlik türünün de sunucuyla oluşturulmasını istiyorsanız olarak ayarlayabilirsiniz -IdentityType
"UserAssigned,SystemAssigned"
.
Oluşturma işleminden sonra sunucu durumunu denetlemek için aşağıdaki komuta bakın:
Get-AzSqlServer -ResourceGroupName "<ResourceGroupName>" -ServerName "<ServerName>" -ExpandActiveDirectoryAdministrator
Sunucular - Oluşturma veya Güncelleştirme REST API'si, kullanıcı tarafından atanan yönetilen kimliğe sahip bir mantıksal sunucu oluşturmak için kullanılabilir.
Aşağıdaki betik bir mantıksal sunucu sağlar, Microsoft Entra yöneticisini olarak <AzureADAccount>
ayarlar ve Microsoft Entra-only kimlik doğrulamasını etkinleştirir. Sunucu SQL Yöneticisi oturum açma bilgileri de otomatik olarak oluşturulur ve parola rastgele bir parola olarak ayarlanır. Bu sağlama ile SQL Kimlik Doğrulaması bağlantısı devre dışı bırakıldığından, SQL Yöneticisi oturum açma bilgileri kullanılmaz.
Microsoft Entra yöneticisi, <AzureADAccount>
sağlama tamamlandığında sunucuyu yönetmek için kullanılabilir.
Örnekteki aşağıdaki değerleri değiştirin:
<tenantId>
: Azure portalına gidip Microsoft Entra ID kaynağınıza giderek bulunabilir. Genel Bakış bölmesinde Kiracı Kimliğinizi görmeniz gerekir
<subscriptionId>
: Abonelik kimliğiniz Azure portalında bulunabilir
<ServerName>
: Benzersiz bir mantıksal sunucu adı kullanın
<ResourceGroupName>
: Mantıksal sunucunuzun kaynak grubunun adı
<AzureADAccount>
: Microsoft Entra kullanıcısı veya grubu olabilir. Örneğin DummyLogin
<Location>
: Sunucunun konumu, örneğin westus2
, veya centralus
<objectId>
: Azure portalına gidip Microsoft Entra ID kaynağınıza giderek bulunabilir. Kullanıcı bölmesinde Microsoft Entra kullanıcısını arayın ve Nesne Kimliğini bulun
<managedIdentity>
: Kullanıcı tarafından atanan yönetilen kimlik. Birincil kimlik olarak da kullanılabilir
<primaryIdentity>
: Sunucu kimliği olarak kullanmak istediğiniz birincil kimlik
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"
Not
Yukarıdaki örnek yalnızca kullanıcı tarafından atanan yönetilen kimliğe sahip bir sunucu sağlar. her iki yönetilen kimlik türünün de sunucuyla oluşturulmasını istiyorsanız olarak ayarlayabilirsiniz "type"
"UserAssigned,SystemAssigned"
.
Sunucu durumunu denetlemek için aşağıdaki betiği kullanabilirsiniz:
$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
Kullanıcı tarafından atanan yönetilen kimliğe sahip Azure SQL Veritabanı mantıksal sunucu oluşturan ARM şablonu örneği aşağıda verilmiştır. Şablon ayrıca sunucu için bir Microsoft Entra yönetici kümesi ekler ve Microsoft Entra-only kimlik doğrulamasını etkinleştirir, ancak bu şablon örneğinden kaldırılabilir.
Daha fazla bilgi ve ARM şablonları için bkz. Azure SQL Veritabanı ve SQL Yönetilen Örneği için Azure Resource Manager şablonları.
Azure portalında özel dağıtım kullanın ve düzenleyicide kendi şablonunuzu oluşturun. Ardından, örnekte yapıştırdıktan sonra yapılandırmayı kaydedin .
Kullanıcı tarafından atanan yönetilen kimliğinizi almak için Azure portalında Yönetilen Kimlikler'i arayın. Yönetilen kimliğinizi bulun ve Özellikler'e gidin. UMI Kaynak Kimliğinizin bir örneği gibi /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
görünür.
{
"$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')]"
}
}
}
]
}