Bu servis hizmetinden yararlanabilmeniz icin asagidaki scripti Azure SQL Server ya da Sanal Makinadaki SQL Server bilgisi ile birlikte Dynamics 365 Hizmetinisin bilgilerini de icercek sekilde doldurup calistirmaxiz gerekmekte.
# -------------------------------------------------------------------------------- #
# Provide the value for the following parameters before executing the script
$subscriptionId = ' #burasi belirtilmeli#'
$keyvaultName = ' #burasi belirtilmeli#'
$secretName = ' #burasi belirtilmeli#'
$resourceGroupName = ' #burasi belirtilmeli#'
$location = ' #burasi belirtilmeli#'
$connectionString = ' #burasi belirtilmeli#'
$organizationIdList = ' #burasi belirtilmeli#'
$tenantId = ' #burasi belirtilmeli#'
# -------------------------------------------------------------------------------- #
# Login to Azure account, select subscription and tenant Id
Login-AzureRmAccount
Set-AzureRmContext -TenantId $tenantId -SubscriptionId$subscriptionId
# Create new resource group if not exists.
$rgAvail = Get-AzureRmResourceGroup -Name $resourceGroupName-Location $location -ErrorAction SilentlyContinue
if(!$rgAvail){
New-AzureRmResourceGroup -Name $resourceGroupName-Location $location
}
# Create new key vault if not exists.
$kvAvail = Get-AzureRmKeyVault -VaultName $keyvaultName -ResourceGroupName$resourceGroupName -ErrorAction SilentlyContinue
if(!$kvAvail){
New-AzureRmKeyVault -VaultName $keyvaultName -ResourceGroupName$resourceGroupName -Location $location
# Wait few seconds for DNS entry to propagate
Start-Sleep -Seconds15
}
# Create tags to store allowed set of Organizations.
$secretTags =@{}
foreach($orgId in $organizationIdList.Split(',')) {
$secretTags.Add($orgId.Trim(), $tenantId)
}
# Add or update a secret to key vault.
$secretVaule = ConvertTo-SecureString $connectionString -AsPlainText -Force
$secret = Set-AzureKeyVaultSecret-VaultName $keyvaultName -Name $secretName -SecretValue$secretVaule -Tags $secretTags
# Authorize application to access key vault.
$servicePrincipal = 'b861dbcc-a7ef-4219-a005-0e4de4ea7dcf'
Set-AzureRmKeyVaultAccessPolicy -VaultName $keyvaultName -ServicePrincipalName$servicePrincipal -PermissionsToSecrets get
# Display secret url.
Write-Host "Connection key vault URL is "$secret.id.TrimEnd($secret.Version)""
Benim değinmek istediğim konu ise bundan farklı. Bir sekilde bu hizmeti aktif hale getirdini ama burada oluşturulan verilere DB Link mantigi içerisinde ulaşmak istediğinizde;
"OLE DB provider "SQLNCLI11" for linked server "#########.DATABASE.WINDOWS.NET" returned message "Unspecified error". Msg 40515, Level 16, State 2, Line 1 Reference to database and/or server name in 'AdventureWorks2012.sys.sp_tables_info_90_rowset_64' is not supported in this version of SQL Server."
ya da
"Failed to retrieve data for this request. (Microsoft.SqlServer.Management.Sdk.Sfc) Reference to database and/or server name in 'AdventureWorks2012.sys.sp_tables_rowset2' is not supported in this version of SQL Server. (Microsoft SQL Server, Error: 40515)"
seklinde hatalar ile karsılaşabilirsiniz. Iste bu sorunu çözmek icin mevcut DB Link baglantisini silmeniz ve asagidaki scripti kullanarak yeniden oluşturmanız gerekmekte. Bu islemi yaptiginizda sorun çözülecektir.
EXECsp_addlinkedserver
@server='PROD',
@srvproduct='',
@provider='sqlncli',
@datasrc='azureserver.database.windows.net',
@location='',
@provstr='',
@catalog='database name'
EXECsp_addlinkedsrvlogin
@rmtsrvname = 'PROD',
@useself = 'false',
@rmtuser = 'Azure login',
@rmtpassword = 'password'
EXECsp_serveroption 'PROD','rpc out', true