تحميل البيانات بأمان باستخدام SQL Synapse
تسلط هذه المقالة الضوء على آليات المصادقة الآمنة لـ عبارة COPYوتوفر أمثلة على ذلك. عبارة COPY هي الطريقة الأكثر مرونة وأماناً لتحميل البيانات بشكل مجمع في SQL Synapse.
آليات المصادقة المدعومة
تصف المصفوفة التالية أساليب المصادقة المدعومة لكل نوع ملف وحساب تخزين. ينطبق هذا على موقع تخزين المصدر وموقع ملف الخطأ.
CSV | Parquet | ORC | |
---|---|---|---|
تخزين البيانات الثنائية الكبيرة في Azure | SAS/MSI/الخدمة الرئيسية/المفتاح/AAD | SAS/المفتاح | SAS/المفتاح |
Azure Data Lake Gen2 | SAS/MSI/الخدمة الرئيسية/المفتاح/AAD | SAS (كائن ثنائي كبير الحجم1)/MSI (dfs2)/الخدمة الرئيسية/المفتاح/AAD | SAS (كائن ثنائي كبير الحجم1)/MSI (dfs2)/الخدمة الرئيسية/المفتاح/AAD |
1: تكون نقطة نهاية الكائن الثنائي كبير الحجم (.blob.core.windows.net
) في مسار موقعك الخارجي ضرورية لطريقة المصادقة هذه.
2: تكون نقطة نهاية dfs (.dfs.core.windows.net
) في مسار موقعك الخارجي ضرورية لطريقة المصادقة هذه.
أ. مفتاح حساب التخزين مع LF كمنهي الصف (سطر جديد بنمط Unix)
--Note when specifying the column list, input field numbers start from 1
COPY INTO target_table (Col_one default 'myStringDefault' 1, Col_two default 1 3)
FROM 'https://adlsgen2account.dfs.core.windows.net/myblobcontainer/folder1/'
WITH (
FILE_TYPE = 'CSV'
,CREDENTIAL=(IDENTITY= 'Storage Account Key', SECRET='<Your_Account_Key>')
--CREDENTIAL should look something like this:
--CREDENTIAL=(IDENTITY= 'Storage Account Key', SECRET='<secret>'),
,ROWTERMINATOR='0x0A' --0x0A specifies to use the Line Feed character (Unix based systems)
)
هام
- استخدم القيمة السداسية العشرية (0x0A) لتحديد تغذية الأسطر/حرف السطر الجديد. لاحظ أن عبارة COPY سوف تأول
\n
سلسلة الأوامر على أنها\r\n
(سطر جديد لزر الإدخال).
ب. توقيع الوصول المشترك (SAS) مع CRLF كمنهي الصف (سطر جديد بنمط Windows)
COPY INTO target_table
FROM 'https://adlsgen2account.dfs.core.windows.net/myblobcontainer/folder1/'
WITH (
FILE_TYPE = 'CSV'
,CREDENTIAL=(IDENTITY= 'Shared Access Signature', SECRET='<Your_SAS_Token>')
--CREDENTIAL should look something like this:
--CREDENTIAL=(IDENTITY= 'Shared Access Signature', SECRET='?sv=2018-03-28&ss=bfqt&srt=sco&sp=rl&st=2016-10-17T20%3A14%3A55Z&se=2021-10-18T20%3A19%3A00Z&sig=IEoOdmeYnE9%2FKiJDSFSYsz4AkN'),
,ROWTERMINATOR='\n'-- COPY command automatically prefixes the \r character when \n (newline) is specified. This results in carriage return newline (\r\n) for Windows based systems.
)
هام
لا تحدّد ROWTERMINATOR
باعتباره '\r\n' لأنها ستأول على أنها '\r\r\n' كما سينتج عنه مشاكل في التحليل. يقوم الأمر COPY تلقائيًا بوضع بادئة للحرف \ r عند تحديد \ n (سطر جديد). ينتج عن هذا سطر جديد لزر إدخال (\ r \ n) للأنظمة المستندة الخاصة بـ Windows.
ج. الهوية المُدارة
مطلوب مصادقة الهوية المدارة عند إرفاق حساب التخزين الخاص بك إلى VNet.
المتطلبات الأساسية
- تثبيت Azure PowerShell. يرجى الاطلاع على تثبيت PowerShell.
- في حال إن كان لديك حساب تخزين الإصدار الأول للأغراض العامة أو حساب تخزين البيانات الثنائية كبيرة الحجم، فيجب عليك أولاً الترقية إلى الإصدار الثاني للأغراض العامة. راجع الترقية إلى حساب تخزين الإصدار الثاني للأغراض العامة.
- يجب أن يكون لديك السماح بخدمات Microsoft الموثوقة بالوصول إلى حساب التخزين هذا قيد التشغيل ضمن قائمة إعدادات حساب Azure Storageوالشبكات الظاهرية وجدران الحماية. راجع تكوين حدود أمان البوابة والشبكات الظاهرية الخاصة بتخزين Azure.
الخطوات
إذا كان لديك تجمع SQL مخصص مستقل، فقم بتسجيل خادم SQL الخاص بك باستخدام معرف Microsoft Entra باستخدام PowerShell:
Connect-AzAccount Select-AzSubscription -SubscriptionId <subscriptionId> Set-AzSqlServer -ResourceGroupName your-database-server-resourceGroup -ServerName your-SQL-servername -AssignIdentity
هذه الخطوة غير مطلوبة لتجمعات SQL المخصصة ضمن مساحة عمل Synapse. يعتبر النظام المعين للهوية المدارة (SA-MI) لمساحة العمل عضوًا في دور مسؤول Synapse وبالتالي يتمتع بامتيازات عالية على مجموعات SQL المخصصة لمساحة العمل.
أنشئ حساب تخزين الإصدار الثاني للأغراض العامة. لمزيد من المعلومات، راجع إنشاء حساب تخزين.
إشعار
- في حال إن كان لديك حساب تخزين الإصدار الأول للأغراض العامة أو حساب تخزين البيانات الثنائية كبيرة الحجم، فيجب عليك أولاً الترقية إلى الإصدار الثاني. لمزيد من المعلومات، راجع الترقية إلى حساب تخزين v2 للأغراض العامة.
- للتعرّف على المشكلات المعروفة في Azure Data Lake Storage Gen2، راجع المشكلات المعروفة في Azure Data Lake Storage Gen2.
ضمن حساب التخزين، حدد Access control (IAM).
حدد Add>Add role assignment لفتح صفحة إضافة تعيين الدور.
تعيين الدور التالي. للحصول على خطوات تفصيلية، راجع تعيين أدوار Azure باستخدام مدخل Azure.
الإعداد القيمة الدور المساهم في بيانات مخزن البيانات الثنائية الكبيرة تعيين الوصول إلى SERVICEPRINCIPAL الأعضاء خادم أو مساحة عمل تستضيف تجمع SQL المخصص الذي قمت بتسجيله باستخدام معرف Microsoft Entra إشعار
لا يمكن تنفيذ هذه الخطوة إلا للأعضاء الذين يتمتعون بامتيازات المالك. للتعرف على الأدوار الكثيرة المضمنة في Azure، راجع الأدوار المضمنة في Azure .
هام
حدد دور Azure للمالك أو المساهم أو القارئ لـ Storage Blob Data. تختلف هذه الأدوار عن أدوار Azure المضمنة للمالك والمساهم والقارئ.
يمكنك الآن تشغيل عبارة COPY التي تحدد "الهوية المدارة":
COPY INTO dbo.target_table FROM 'https://myaccount.blob.core.windows.net/myblobcontainer/folder1/*.txt' WITH ( FILE_TYPE = 'CSV', CREDENTIAL = (IDENTITY = 'Managed Identity'), )
د. مصادقة Microsoft Entra
الخطوات
ضمن حساب التخزين، حدد Access control (IAM).
حدد Add>Add role assignment لفتح صفحة إضافة تعيين الدور.
تعيين الدور التالي. للحصول على خطوات تفصيلية، راجع تعيين أدوار Azure باستخدام مدخل Azure.
الإعداد القيمة الدور دور المالك أو المساهم أو القارئ لبيانات الكائنات الثنائية كبيرة الحجم للتخزين تعيين الوصول إلى USER الأعضاء مستخدم Microsoft Entra هام
حدد دور Azure للمالك أو المساهم أو القارئ لـ Storage Blob Data. تختلف هذه الأدوار عن أدوار Azure المضمنة للمالك والمساهم والقارئ.
تكوين مصادقة Microsoft Entra. راجع تكوين وإدارة مصادقة Microsoft Entra باستخدام Azure SQL.
الاتصال بتجمع SQL باستخدام Active Directory حيث يمكنك الآن تشغيل عبارة COPY دون تحديد أية بيانات اعتماد:
COPY INTO dbo.target_table FROM 'https://myaccount.blob.core.windows.net/myblobcontainer/folder1/*.txt' WITH ( FILE_TYPE = 'CSV' )
هـ. المصادقة باستخدام الخدمة الرئيسية
الخطوات
إنشاء تطبيق Microsoft Entra.
احصل على نقطة نهاية الرمز المميز Open Authorization 2.0 للإصدار الأول.
تعيين أذونات القراءة والكتابة والتنفيذ لتطبيق Microsoft Entra على حساب التخزين الخاص بك.
يمكنك الآن تشغيل عبارة COPY:
COPY INTO dbo.target_table FROM 'https://myaccount.blob.core.windows.net/myblobcontainer/folder0/*.txt' WITH ( FILE_TYPE = 'CSV' ,CREDENTIAL=(IDENTITY= '<application_ID>@<OAuth_2.0_Token_EndPoint>' , SECRET= '<authentication_key>') --CREDENTIAL should look something like this: --,CREDENTIAL=(IDENTITY= '92761aac-12a9-4ec3-89b8-7149aef4c35b@https://login.microsoftonline.com/72f714bf-86f1-41af-91ab-2d7cd011db47/oauth2/token', SECRET='juXi12sZ6gse]woKQNgqwSywYv]7A.M') )
هام
استخدم الإصدار 1 من نقطة نهاية الرمز المميز OAuth 2.0
الخطوات التالية
- تحقق من مقالة عبارة COPY لبناء الجملة التفصيلي
- تحقق من مقالة نظرة عامة على تحميل البيانات لتحميل أفضل الممارسات