نقل مساحة عمل Azure Synapse Analytics من منطقة إلى أخرى

هذه المقالة عبارة عن دليل خطوة بخطوة يوضح لك كيفية نقل مساحة عمل Azure Synapse Analytics من منطقة Azure إلى أخرى.

ملاحظة

لا تؤدي الخطوات الواردة في هذه المقالة إلى نقل مساحة العمل بالفعل. توضح لك الخطوات كيفية إنشاء مساحة عمل جديدة في منطقة جديدة باستخدام SQL الاحتياطية المخصصة ل Azure Synapse Analytics وتجميع النسخ الاحتياطية والقطع الأثرية من المنطقة المصدر.

المتطلبات الأساسية

  • دمج مساحة عمل Azure Synapse في المنطقة المصدر مع Azure DevOps أو GitHub. لمزيد من المعلومات، راجع عنصر تحكم المصدر في Synapse Studio.
  • لديك وحدات Azure PowerShell و Azure CLI مثبتة على الخادم حيث يتم تنفيذ البرامج النصية.
  • تأكد من إعادة إنشاء جميع الخدمات التابعة، على سبيل المثال، Azure التعلم الآلي وAzure Storage وAzure Private Link، في المنطقة المستهدفة أو نقلها إلى المنطقة المستهدفة إذا كانت الخدمة تدعم نقل منطقة.
  • نقل تخزين Azure إلى منطقة مختلفة. لمزيد من المعلومات، راجع نقل حساب تخزين Azure إلى منطقة أخرى.
  • تأكد من أن اسم تجمع SQL المخصص واسم تجمع Apache Spark متشابهان في منطقة المصدر ومساحة عمل المنطقة المستهدفة.

سيناريوهات انتقال المنطقة

  • متطلبات الامتثال الجديدة: تتطلب المؤسسات وضع البيانات والخدمات في نفس المنطقة كجزء من متطلبات الامتثال الجديدة.
  • توفر منطقة Azure جديدة: السيناريوهات التي تتوفر فيها منطقة Azure جديدة وتوجد متطلبات مشروع أو عمل لنقل مساحة العمل وموارد Azure الأخرى إلى منطقة Azure المتوفرة حديثا.
  • تحديد منطقة غير صحيحة: تم تحديد المنطقة الخطأ عند إنشاء موارد Azure.

خطوات نقل مساحة عمل Azure Synapse إلى منطقة أخرى

يعد نقل مساحة عمل Azure Synapse من منطقة إلى منطقة أخرى عملية متعددة الخطوات. فيما يلي الخطوات عالية المستوى:

  1. قم بإنشاء مساحة عمل Azure Synapse جديدة في المنطقة المستهدفة إلى جانب تجمع Spark بنفس التكوينات المستخدمة في مساحة عمل المنطقة المصدر.
  2. استعادة تجمع SQL المخصص إلى المنطقة المستهدفة باستخدام نقاط الاستعادة أو النسخ الاحتياطي الجغرافي.
  3. أعد إنشاء كافة عمليات تسجيل الدخول المطلوبة على SQL Server المنطقي الجديد.
  4. إنشاء قواعد بيانات وكائنات تجمع SQL بدون خادم وتجمع Spark.
  5. أضف Azure DevOps Service Principal إلى دور التحكم في الوصول المستند إلى دور Azure Synapse (RBAC) Synapse Artifact Publisher الدور إذا كنت تستخدم خط أنابيب إصدار Azure DevOps لنشر القطع الأثرية.
  6. نشر أداة التعليمات البرمجية (SQL البرامج النصية ودفاتر الملاحظات) والخدمات المرتبطة وخطوط الأنابيب ومجموعات البيانات ومشغلات تعريفات مهمة Spark وبيانات الاعتماد من خطوط أنابيب إصدار Azure DevOps إلى مساحة عمل Azure Synapse في المنطقة الهدف.
  7. أضف مستخدمي Azure Active Directory (Azure AD) أو مجموعات إلى أدوار Azure Synapse RPAC. إن منح Storage Blob Contributor حق الوصول إلى الهوية المدارة المعينة من قبل النظام (SA-MI) على Azure Storage وAzure Key Vault إذا كنت تقوم بالمصادقة باستخدام الهوية المدارة.
  8. منح أدوار "قارئ نقاط التخزين" أو "مساهم نقطة التخزين" للمستخدمين المطلوبين Azure AD على التخزين المرفق الافتراضي أو على حساب "التخزين" الذي يحتوي على بيانات يتم الاستعلام عنها باستخدام تجمع SQL بدون خادم.
  9. أعد إنشاء وقت تشغيل التكامل المستضاف ذاتيا (SHIR).
  10. قم بتحميل جميع المكتبات والجرار المطلوبة يدويا في مساحة عمل Azure Synapse الهدف.
  11. قم بإنشاء كافة نقاط النهاية الخاصة المدارة إذا تم نشر مساحة العمل في شبكة ظاهرية مدارة.
  12. اختبر مساحة العمل الجديدة على المنطقة المستهدفة وقم بتحديث أي إدخالات DNS، والتي تشير إلى مساحة عمل المنطقة المصدر.
  13. إذا كان هناك اتصال نقطة نهاية خاص تم إنشاؤه على مساحة العمل المصدر، فقم بإنشاء اتصال على مساحة عمل المنطقة الهدف.
  14. يمكنك حذف مساحة العمل في المنطقة المصدر بعد اختبارها بدقة وتوجيه كافة الاتصالات إلى مساحة عمل المنطقة الهدف.

تجهيز

الخطوة 1: إنشاء مساحة عمل Azure Synapse في منطقة مستهدفة

في هذا القسم، ستقوم بإنشاء مساحة عمل Azure Synapse باستخدام Azure PowerShell وAzure CLI ومدخل Azure. ستقوم بإنشاء مجموعة موارد إلى جانب حساب Azure Data Lake Storage Gen2 سيتم استخدامه كوحدة تخزين افتراضية لمساحة العمل كجزء من البرنامج النصي PowerShell والبرنامج النصي CLI. إذا كنت ترغب في أتمتة عملية النشر، فقم باستدعاء هذه البرامج النصية PowerShell أو CLI من خط أنابيب إصدار DevOps.

مدخل Azure

لإنشاء مساحة عمل من مدخل Azure، اتبع الخطوات الواردة في التشغيل السريع: إنشاء مساحة عمل Synapse.

Azure PowerShell

يقوم البرنامج النصي التالي بإنشاء مجموعة الموارد ومساحة عمل Azure Synapse باستخدام New-AzResourceGroup و cmdlets New-AzSynapseWorkspace.

قم بإنشاء مجموعة موارد

$storageAccountName= "<YourDefaultStorageAccountName>"
$resourceGroupName="<YourResourceGroupName>"
$regionName="<YourTargetRegionName>"
$containerName="<YourFileSystemName>" # This is the file system name
$workspaceName="<YourTargetRegionWorkspaceName>"

$sourcRegionWSName="<Your source region workspace name>"
$sourceRegionRGName="<YourSourceRegionResourceGroupName>"
$sqlUserName="<SQLUserName>"
$sqlPassword="<SQLStrongPassword>"

$sqlPoolName ="<YourTargetSQLPoolName>" #Both Source and target workspace SQL pool name will be same
$sparkPoolName ="<YourTargetWorkspaceSparkPoolName>"
$sparkVersion="2.4"

New-AzResourceGroup -Name $resourceGroupName -Location $regionName

إنشاء حساب Data Lake Storage Gen2

#If the Storage account is already created, then you can skip this step.
New-AzStorageAccount -ResourceGroupName $resourceGroupName `
  -Name $storageAccountName `
  -Location  $regionName `
  -SkuName Standard_LRS `
  -Kind StorageV2 `
  -EnableHierarchicalNamespace $true 

Create a Azure Synapse workspace

$password = ConvertTo-SecureString $sqlPassword -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential ($sqlUserName, $password)

New-AzSynapseWorkspace -ResourceGroupName $resourceGroupName `
                        -Name $workspaceName -Location $regionName `
                        -DefaultDataLakeStorageAccountName $storageAccountName `
                        -DefaultDataLakeStorageFilesystem $containerName `
                        -SqlAdministratorLoginCredential $creds 

إذا كنت ترغب في إنشاء مساحة العمل باستخدام شبكة ظاهرية مدارة، فأضف المعلمة الإضافية "ManagedVirtualNetwork" إلى البرنامج النصي. لمعرفة المزيد حول الخيارات المتاحة، راجع تكوين الشبكة الظاهرية المدارة.

#Creating a managed virtual network configuration
$config = New-AzSynapseManagedVirtualNetworkConfig -PreventDataExfiltration -AllowedAadTenantIdsForLinking ContosoTenantId 

#Creating an Azure Synapse workspace
New-AzSynapseWorkspace -ResourceGroupName $resourceGroupName `
                        -Name $workspaceName -Location $regionName `
                        -DefaultDataLakeStorageAccountName $storageAccountName `
                        -DefaultDataLakeStorageFilesystem $containerName `
                        -SqlAdministratorLoginCredential $creds `
                              -ManagedVirtualNetwork $config

Azure CLI

ينشئ هذا البرنامج النصي Azure CLI مجموعة موارد وحساب Data Lake Storage Gen2 ونظام ملفات. ثم يقوم بإنشاء مساحة عمل Azure Synapse.

قم بإنشاء مجموعة موارد

az group create --name $resourceGroupName --location $regionName

إنشاء حساب Data Lake Storage Gen2

يقوم البرنامج النصي التالي بإنشاء حساب تخزين وحاوية.

# Checking if name is not used only then creates it.
$StorageAccountNameAvailable=(az storage account check-name --name $storageAccountName --subscription $subscriptionId | ConvertFrom-Json).nameAvailable

if($StorageAccountNameAvailable)
{
Write-Host "Storage account Name is available to be used...creating storage account"

#Creating a Data Lake Storage Gen2 account
$storgeAccountProvisionStatus=az storage account create `
  --name $storageAccountName `
  --resource-group $resourceGroupName `
  --location $regionName `
  --sku Standard_GRS `
  --kind StorageV2 `
  --enable-hierarchical-namespace $true

($storgeAccountProvisionStatus| ConvertFrom-Json).provisioningState
}
else
{
    Write-Host "Storage account Name is NOT available to be used...use another name --    exiting the script..."
    EXIT
}

#Creating a container in a Data Lake Storage Gen2 account

$key=(az storage account keys list -g $resourceGroupName -n $storageAccountName|ConvertFrom-Json)[0].value

$fileShareStatus=(az storage share create --account-name $storageAccountName --name $containerName --account-key $key)

if(($fileShareStatus|ConvertFrom-Json).created -eq "True")
{
      Write-Host f"Successfully created the fileshare - '$containerName'"
}

Create a Azure Synapse workspace

az synapse workspace create `
  --name $workspaceName `
  --resource-group $resourceGroupName `
  --storage-account $storageAccountName `
  --file-system $containerName `
  --sql-admin-login-user $sqlUserName `
  --sql-admin-login-password $sqlPassword `
  --location $regionName

لتمكين شبكة ظاهرية مدارة، قم بتضمين المعلمة --enable-managed-virtual-network في البرنامج النصي السابق. لمزيد من الخيارات، راجع الشبكة الظاهرية المدارة في مساحة العمل.

az synapse workspace create `
  --name $workspaceName `
  --resource-group $resourceGroupName `
  --storage-account $storageAccountName `
  --file-system $FileShareName `
  --sql-admin-login-user $sqlUserName `
  --sql-admin-login-password $sqlPassword `
  --location $regionName `
  --enable-managed-virtual-network true `
  --allowed-tenant-ids "Contoso"

الخطوة 2: إنشاء قاعدة جدار حماية مساحة عمل Azure Synapse

بعد إنشاء مساحة العمل، أضف قواعد جدار الحماية لمساحة العمل. تقييد عناوين IP إلى نطاق معين. يمكنك إضافة جدار حماية من مدخل Azure أو باستخدام PowerShell أو CLI.

مدخل Azure

حدد خيارات جدار الحماية وأضف نطاق عناوين IP كما هو موضح في لقطة الشاشة التالية.

Azure PowerShell

قم بتشغيل أوامر PowerShell التالية لإضافة قواعد جدار الحماية عن طريق تحديد عنواني IP للبدء والنهاية. قم بتحديث نطاق عناوين IP وفقا لمتطلباتك.

$WorkspaceWeb = (Get-AzSynapseWorkspace -Name $workspaceName -ResourceGroupName $resourceGroup).ConnectivityEndpoints.Web
$WorkspaceDev = (Get-AzSynapseWorkspace -Name $workspaceName -ResourceGroupName $resourceGroup).ConnectivityEndpoints.Dev

# Adding firewall rules
$FirewallParams = @{
  WorkspaceName = $workspaceName
  Name = 'Allow Client IP'
  ResourceGroupName = $resourceGroup
  StartIpAddress = "0.0.0.0"
  EndIpAddress = "255.255.255.255"
}
New-AzSynapseFirewallRule @FirewallParams

قم بتشغيل البرنامج النصي التالي لتحديث إعدادات التحكم في الهوية المدارة SQL لمساحة العمل:

Set-AzSynapseManagedIdentitySqlControlSetting -WorkspaceName $workspaceName -Enabled $true 

Azure CLI

az synapse workspace firewall-rule create --name allowAll --workspace-name $workspaceName  `
--resource-group $resourceGroupName --start-ip-address 0.0.0.0 --end-ip-address 255.255.255.255

قم بتشغيل البرنامج النصي التالي لتحديث إعدادات التحكم في الهوية المدارة SQL لمساحة العمل:

az synapse workspace managed-identity grant-sql-access `
--workspace-name $workspaceName --resource-group $resourceGroupName

الخطوة 3: إنشاء تجمع Apache Spark

قم بإنشاء تجمع Spark بنفس التكوين المستخدم في مساحة عمل المنطقة المصدر.

مدخل Azure

لإنشاء تجمع Spark من مدخل Azure، راجع التشغيل السريع: إنشاء تجمع Apache Spark جديد بدون خادم باستخدام مدخل Azure.

يمكنك أيضا إنشاء تجمع Spark من Synapse Studio باتباع الخطوات الواردة في التشغيل السريع: إنشاء تجمع Apache Spark بدون خادم باستخدام Synapse Studio.

Azure PowerShell

يقوم البرنامج النصي التالي بإنشاء تجمع Spark مع عاملين اثنين وعقدة سائق واحدة ، وحجم مجموعة صغير مع 4 نوى وذاكرة وصول عشوائي 32 جيجابايت. قم بتحديث القيم لمطابقة تجمع Spark لمساحة عمل منطقة المصدر.

#Creating a Spark pool with 3 nodes (2 worker + 1 driver) and a small cluster size with 4 cores and 32 GB RAM. 
New-AzSynapseSparkPool `
    -WorkspaceName  $workspaceName `
    -Name $sparkPoolName `
    -NodeCount 3 `
    -SparkVersion $sparkVersion `
    -NodeSize Small

Azure CLI

az synapse spark pool create --name $sparkPoolName --workspace-name $workspaceName --resource-group $resourceGroupName `
--spark-version $sparkVersion --node-count 3 --node-size small

Move

الخطوة 4: استعادة تجمع SQL مخصص

استعادة من النسخ الاحتياطية الزائدة جغرافيا

لاستعادة تجمعات SQL المخصصة من النسخ الاحتياطي الجغرافي باستخدام مدخل Azure وPowerShell، راجع الاستعادة الجغرافية لتجمع SQL مخصص في Azure Synapse Analytics.

الاستعادة باستخدام نقاط الاستعادة من مساحة عمل المنطقة المصدر المخصصة SQL التجمع

قم باستعادة تجمع SQL المخصص إلى مساحة عمل المنطقة المستهدفة باستخدام نقطة الاستعادة الخاصة بمساحة عمل المنطقة المصدر المخصصة SQL التجمع. يمكنك استخدام مدخل Azure أو Synapse Studio أو PowerShell للاستعادة من نقاط الاستعادة. إذا تعذر الوصول إلى المنطقة المصدر، فلا يمكنك الاستعادة باستخدام هذا الخيار.

Synapse Studio

من Synapse Studio، يمكنك استعادة تجمع SQL المخصص من أي مساحة عمل في الاشتراك باستخدام نقاط الاستعادة. أثناء إنشاء تجمع SQL المخصص، ضمن إعدادات إضافية، حدد نقطة استعادة وحدد مساحة العمل كما هو موضح في لقطة الشاشة التالية. إذا قمت بإنشاء نقطة استعادة معرفة من قبل المستخدم، فاستخدمها لاستعادة تجمع SQL. وإلا، يمكنك تحديد أحدث نقطة استعادة تلقائية.

Restoring SQL pool

Azure PowerShell

قم بتشغيل البرنامج النصي PowerShell التالي لاستعادة مساحة العمل. يستخدم هذا البرنامج النصي أحدث نقطة استعادة من مساحة العمل المصدر المخصصة SQL التجمع لاستعادة تجمع SQL على مساحة العمل الهدف. قبل تشغيل البرنامج النصي، قم بتحديث مستوى الأداء من DW100c إلى القيمة المطلوبة.

هام

يجب أن يكون اسم تجمع SQL المخصص هو نفسه في كل من مساحات العمل.

احصل على نقاط الاستعادة:

$restorePoint=Get-AzSynapseSqlPoolRestorePoint -WorkspaceName $sourceRegionWSName -Name $sqlPoolName|Sort-Object  -Property RestorePointCreationDate -Descending `
                                                                                         | SELECT RestorePointCreationDate -ExpandProperty  RestorePointCreationDate -First 1

قم بتحويل معرف مورد تجمع Azure Synapse SQL إلى معرف قاعدة بيانات SQL لأن الأمر يقبل حاليا معرف قاعدة بيانات SQL فقط. على سبيل المثال:/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.Sql/servers/<WorkspaceName>/databases/<DatabaseName>

$pool = Get-AzSynapseSqlPool -ResourceGroupName $sourceRegionRGName -WorkspaceName $sourcRegionWSName -Name $sqlPoolName
$databaseId = $pool.Id `
    -replace "Microsoft.Synapse", "Microsoft.Sql" `
    -replace "workspaces", "servers" `
    -replace "sqlPools", "databases" 
 

$restoredPool = Restore-AzSynapseSqlPool -FromRestorePoint `
                                         -RestorePoint $restorePoint `
                                         -TargetSqlPoolName $sqlPoolName `
                                         -ResourceGroupName $resourceGroupName `
                                         -WorkspaceName $workspaceName `
                                         -ResourceId $databaseId `
                                         -PerformanceLevel DW100c -AsJob

يتتبع ما يلي حالة عملية الاستعادة:

Get-Job | Where-Object Command -In ("Restore-AzSynapseSqlPool") | `
Select-Object Id,Command,JobStateInfo,PSBeginTime,PSEndTime,PSJobTypeName,Error |Format-Table

بعد استعادة تجمع SQL المخصص، قم بإنشاء كافة عمليات تسجيل الدخول SQL في Azure Synapse. لإنشاء جميع عمليات تسجيل الدخول، اتبع الخطوات الواردة في إنشاء تسجيل دخول.

الخطوة 5: إنشاء تجمع SQL بدون خادم وقاعدة بيانات تجمع Spark وكائنات

لا يمكنك عمل نسخة احتياطية من قواعد بيانات تجمع SQL وتجمعات Spark واستعادتها. كحل بديل، يمكنك:

  1. قم بإنشاء دفاتر ملاحظات وبرامج نصية SQL، تحتوي على التعليمات البرمجية لإعادة إنشاء كل تجمع Spark المطلوب وقواعد بيانات تجمع SQL بدون خادم والجداول والأدوار والمستخدمين مع جميع تعيينات الأدوار. تحقق في هذه القطع الأثرية إلى Azure DevOps أو GitHub.
  2. إذا تم تغيير اسم حساب التخزين، فتأكد من أن نماذج التعليمات البرمجية تشير إلى اسم حساب التخزين الصحيح.
  3. إنشاء خطوط الأنابيب، والتي تستدعي هذه النماذج التعليمات البرمجية في تسلسل معين. عند تنفيذ خطوط الأنابيب هذه على مساحة عمل المنطقة الهدف، سيتم إنشاء قواعد بيانات Spark SQL وقواعد بيانات تجمع SQL بدون خادم ومصادر البيانات الخارجية وطرق العرض والأدوار والمستخدمين والأذونات على مساحة عمل المنطقة الهدف.
  4. عند دمج مساحة عمل المنطقة المصدر مع Azure DevOps، ستكون هذه النماذج البرمجية جزءا من الريبو. في وقت لاحق، يمكنك نشر هذه النماذج التعليمات البرمجية إلى مساحة عمل المنطقة المستهدفة باستخدام خط أنابيب DevOps Release كما هو مذكور في الخطوة 6.
  5. على مساحة عمل المنطقة المستهدفة، قم بتشغيل خطوط الأنابيب هذه يدويا.

الخطوة 6: نشر القطع الأثرية وخطوط الأنابيب باستخدام CI/CD

لمعرفة كيفية دمج مساحة عمل Azure Synapse مع Azure DevOps أو GitHub وكيفية نشر القطع الأثرية في مساحة عمل المنطقة المستهدفة، اتبع الخطوات الواردة في التكامل المستمر والتسليم المستمر (CI/CD) لمساحة عمل Azure Synapse.

بعد دمج مساحة العمل مع Azure DevOps، ستجد فرعا يحمل الاسم workspace_publish. يحتوي هذا الفرع على قالب مساحة العمل الذي يتضمن تعريفات للعناصر الفنية مثل دفاتر الملاحظات والبرامج النصية SQL ومجموعات البيانات والخدمات المرتبطة وخطوط الأنابيب والمشغلات وتعريف مهمة Spark.

تعرض لقطة الشاشة هذه من الريبو Azure DevOps ملفات قالب مساحة العمل للقطع الأثرية والمكونات الأخرى.

Screenshot that shows workspace-publish.

يمكنك استخدام قالب مساحة العمل لنشر القطع الأثرية وخطوط الأنابيب إلى مساحة عمل باستخدام خط أنابيب إصدار Azure DevOps كما هو موضح في لقطة الشاشة التالية.

Screenshot that shows synapse-release-pipeline.

إذا لم تكن مساحة العمل مدمجة مع GitHub أو Azure DevOps، فسيتعين عليك إعادة إنشاء أو كتابة البرامج النصية المخصصة ل PowerShell أو Azure CLI يدويا لنشر جميع القطع الأثرية وخطوط الأنابيب والخدمات المرتبطة وبيانات الاعتماد والمشغلات وتعريفات Spark على مساحة عمل المنطقة الهدف.

ملاحظة

تتطلب منك هذه العملية الاستمرار في تحديث خطوط الأنابيب ونماذج التعليمات البرمجية لتضمين أي تغييرات تم إجراؤها على Spark وتجمعات SQL بدون خادم وكائنات وأدوار في مساحات عمل المنطقة المصدر.

الخطوة 7: إنشاء وقت تشغيل تكامل مشترك

لإنشاء SHIR، اتبع الخطوات الواردة في إنشاء وقت تشغيل تكامل مستضاف ذاتيا وتكوينه.

الخطوة 8: تعيين دور Azure للهوية المدارة

قم بتعيين Storage Blob Contributor حق الوصول إلى الهوية المدارة لمساحة العمل الجديدة على حساب Data Lake Storage Gen2 المرفق الافتراضي. قم أيضا بتعيين الوصول إلى حسابات التخزين الأخرى حيث يتم استخدام SA-MI للمصادقة. تعيين Storage Blob Contributor مستخدمين ومجموعات Azure AD أو Storage Blob Reader الوصول إليها لجميع حسابات التخزين المطلوبة.

مدخل Azure

اتبع الخطوات الواردة في منح الأذونات للهوية المدارة لمساحة العمل لتعيين دور "مساهم بيانات نقطة التخزين" إلى الهوية المدارة لمساحة العمل.

Azure PowerShell

تعيين دور "مساهم بيانات نقطة التخزين" للهوية المدارة لمساحة العمل.

إضافة مساهم بيانات كتلة التخزين إلى الهوية المدارة لمساحة العمل على حساب التخزين. تنفيذ New-AzRoleAssignment الأخطاء مع الرسالة Exception of type 'Microsoft.Rest.Azure.CloudException' was thrown. ومع ذلك فإنه يخلق الأذونات المطلوبة على حساب التخزين.

$workSpaceIdentityObjectID= (Get-AzSynapseWorkspace -ResourceGroupName $resourceGroupName -Name $workspaceName).Identity.PrincipalId 
$scope = "/subscriptions/$($subscriptionId)/resourceGroups/$($resourceGroupName)/providers/Microsoft.Storage/storageAccounts/$($storageAccountName)"

$roleAssignedforManagedIdentity=New-AzRoleAssignment -ObjectId $workSpaceIdentityObjectID `
    -RoleDefinitionName "Storage Blob Data Contributor" `
    -Scope $scope -ErrorAction SilentlyContinue

Azure CLI

احصل على اسم الدور ومعرف المورد والمعرف الأساسي للهوية المدارة لمساحة العمل، ثم أضف دور Azure لمساهم بيانات كتلة التخزين إلى SA-MI.

# Getting Role name
$roleName =az role definition list --query "[?contains(roleName, 'Storage Blob Data Contributor')].{roleName:roleName}" --output tsv

#Getting resource id for storage account
$scope= (az storage account show --name $storageAccountName|ConvertFrom-Json).id

#Getting principal ID for workspace managed identity
$workSpaceIdentityObjectID=(az synapse workspace show --name $workspaceName --resource-group $resourceGroupName|ConvertFrom-Json).Identity.PrincipalId 
                    
# Adding Storage Blob Data Contributor Azure role to SA-MI
az role assignment create --assignee $workSpaceIdentityObjectID `
--role $roleName `
--scope $scope

الخطوة 9: تعيين أدوار Azure Synapse RBAC

أضف جميع المستخدمين الذين يحتاجون إلى الوصول إلى مساحة العمل المستهدفة بأدوار وأذونات منفصلة. يضيف البرنامج النصي PowerShell وCLI التالي مستخدم Azure AD إلى دور مسؤول Synapse في مساحة عمل المنطقة الهدف.

للحصول على كافة أسماء أدوار Azure Synapse RPAC، راجع أدوار Azure Synapse RPAC.

Synapse Studio

لإضافة تعيينات Azure Synapse RBAC أو حذفها من Synapse Studio، اتبع الخطوات الواردة في كيفية إدارة تعيينات دور Azure Synapse RBAC في Synapse Studio.

Azure PowerShell

يضيف البرنامج النصي PowerShell التالي تعيين دور مسؤول Synapse إلى مستخدم أو مجموعة Azure AD. يمكنك استخدام -RoleDefinitionId بدلا من -RoleDefinitionName مع الأمر التالي لإضافة المستخدمين إلى مساحة العمل:

New-AzSynapseRoleAssignment `
   -WorkspaceName $workspaceName  `
   -RoleDefinitionName "Synapse Administrator" `
   -ObjectId 1c02d2a6-ed3d-46ec-b578-6f36da5819c6

Get-AzSynapseRoleAssignment -WorkspaceName $workspaceName  

للحصول على ObjectIds و RoleIds في مساحة عمل المنطقة المصدر، قم بتشغيل Get-AzSynapseRoleAssignment الأمر. قم بتعيين نفس أدوار Azure Synapse RBAC Azure AD المستخدمين أو المجموعات في مساحة عمل المنطقة الهدف.

بدلا من استخدامها -ObjectId كمعلمة ، يمكنك أيضا استخدام -SignInName، حيث تقدم عنوان البريد الإلكتروني أو اسم المستخدم الرئيسي للمستخدم. لمعرفة المزيد حول الخيارات المتاحة، راجع Azure Synapse RBAC - PowerShell cmdlet.

Azure CLI

احصل على معرف الكائن الخاص بالمستخدم وقم بتعيين أذونات Azure Synapse RBAC المطلوبة للمستخدم Azure AD. يمكنك توفير عنوان البريد الإلكتروني للمستخدم (username@contoso.com) للمعلمة --assignee .

az synapse role assignment create `
--workspace-name $workspaceName `
--role "Synapse Administrator" --assignee adasdasdd42-0000-000-xxx-xxxxxxx

az synapse role assignment create `
--workspace-name $workspaceName `
--role "Synapse Contributor" --assignee "user1@contoso.com"

لمعرفة المزيد حول الخيارات المتاحة، راجع Azure Synapse RBAC - CLI.

الخطوة 10: حزم مساحة العمل Upload

Upload كافة حزم مساحة العمل المطلوبة إلى مساحة العمل الجديدة. لأتمتة عملية تحميل حزم مساحة العمل، راجع مكتبة عميل Microsoft Azure Synapse Analytics Artifacts.

الخطوة 11: الأذونات

لإعداد التحكم في الوصول لمساحة عمل Azure Synapse في المنطقة الهدف، اتبع الخطوات الواردة في كيفية إعداد التحكم في الوصول لمساحة عمل Azure Synapse.

الخطوة 12: إنشاء نقاط نهاية خاصة مدارة

لإعادة إنشاء نقاط النهاية الخاصة المدارة من مساحة عمل المنطقة المصدر في مساحة عمل المنطقة المستهدفة، راجع إنشاء نقطة نهاية خاصة مدارة لمصدر البيانات.

تجاهل

إذا كنت ترغب في تجاهل مساحة عمل المنطقة الهدف، فاحذف مساحة عمل المنطقة المستهدفة. للقيام بذلك، انتقل إلى مجموعة الموارد من لوحة المعلومات في البوابة الإلكترونية وحدد مساحة العمل وحدد حذف في أعلى صفحة مجموعة الموارد.

التنظيف

لتنفيذ التغييرات وإكمال نقل مساحة العمل، احذف مساحة عمل المنطقة المصدر بعد اختبار مساحة العمل في المنطقة الهدف. للقيام بذلك، انتقل إلى مجموعة الموارد التي تحتوي على مساحة عمل المنطقة المصدر من لوحة المعلومات في البوابة الإلكترونية وحدد مساحة العمل وحدد حذف في أعلى صفحة مجموعة الموارد.

الخطوات التالية