إعدادات المصادقة لبرنامج تشغيل Databricks JDBC
توضح هذه المقالة كيفية تكوين إعدادات مصادقة Azure Databricks لبرنامج تشغيل Databricks JDBC.
لتكوين اتصال Azure Databricks لبرنامج تشغيل Databricks JDBC، يجب دمج إعدادات مورد الحساب وأي إعدادات قدرة برنامج تشغيل وإعدادات المصادقة التالية في عنوان URL لاتصال JDBC أو مجموعة برمجية من خصائص اتصال JDBC.
تستخدم عناوين URL لاتصال JDBC التنسيق التالي:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>[;<setting1>=<value1>;<setting2>=<value2>;<settingN>=<valueN>]
- للحصول على قيم
<server-hostname>
و، راجع إعدادات الحساب لبرنامج تشغيل Databricks<http-path>
JDBC. - استبدل
<setting>=<value>
حسب الحاجة لكل خاصية من خصائص الاتصال كما هو موضح في الأقسام التالية. - يمكنك أيضا إضافة إعدادات خاصة أو متقدمة لقدرة برنامج التشغيل.
يمكن استخدام المجموعات البرمجية لخصائص اتصال JDBC في تعليمة Java البرمجية مثل المثال التالي:
package org.example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.Properties;
public class Main {
public static void main(String[] args) throws Exception {
Class.forName("com.databricks.client.jdbc.Driver");
String url = "jdbc:databricks://" + System.getenv("DATABRICKS_SERVER_HOSTNAME") + ":443";
Properties p = new java.util.Properties();
p.put("httpPath", System.getenv("DATABRICKS_HTTP_PATH"));
p.put("<setting1>", "<value1");
p.put("<setting2>", "<value2");
p.put("<settingN>", "<valueN");
try (Connection conn = DriverManager.getConnection(url, p)) {
Statement stmt = conn.createStatement();
try (ResultSet rs = stmt.executeQuery("<query>")) {
ResultSetMetaData md = rs.getMetaData();
String[] columns = new String[md.getColumnCount()];
for (int i = 0; i < columns.length; i++) {
columns[i] = md.getColumnName(i + 1);
}
while (rs.next()) {
System.out.print("Row " + rs.getRow() + "=[");
for (int i = 0; i < columns.length; i++) {
if (i != 0) {
System.out.print(", ");
}
System.out.print(columns[i] + "='" + rs.getObject(i + 1) + "'");
}
System.out.println(")]");
}
}
}
System.exit(0);
}
}
DATABRICKS_SERVER_HOSTNAME
تعيين قيم البيئة وDATABRICKS_HTTP_PATH
إلى قيم Server Hostname ومسار HTTP لمورد حساب Azure Databricks الهدف، على التوالي. للحصول على هذه القيم، راجع إعدادات الحساب لبرنامج تشغيل Databricks JDBC. لتعيين متغيرات البيئة، راجع وثائق نظام التشغيل الخاص بك.- استبدل
<setting>
و<value>
حسب الحاجة لكل خاصية من خصائص الاتصال كما هو موضح في الأقسام التالية. - يمكنك أيضا إضافة إعدادات خاصة أو متقدمة لقدرة برنامج التشغيل، عادة كأزواج و
<value>
إضافية<setting>
. - في هذا المثال، استبدل
<query>
بسلسلة استعلام SQLSELECT
.
سواء كنت تستخدم عنوان URL للاتصال أو مجموعة من خصائص الاتصال سيعتمد على متطلبات التطبيق أو الأداة أو العميل أو SDK أو واجهة برمجة التطبيقات الهدف. يتم توفير أمثلة لعناوين URL لاتصال JDBC والمجموعات البرمجية لخصائص اتصال JDBC في هذه المقالة لكل نوع مصادقة Azure Databricks مدعوم.
يدعم برنامج تشغيل Databricks JDBC أنواع مصادقة Azure Databricks التالية:
- الرمز المميز للوصول الشخصي ل Azure Databricks
- الرمز المميز لمعرف Microsoft Entra
- رموز OAuth 2.0 المميزة
- مصادقة OAuth من مستخدم إلى جهاز (U2M)
- مصادقة OAuth من جهاز إلى جهاز (M2M)
الرمز المميز للوصول الشخصي ل Azure Databricks
لإنشاء رمز مميز للوصول الشخصي إلى Azure Databricks، اتبع الخطوات الواردة في رموز الوصول الشخصي Azure Databricks لمستخدمي مساحة العمل.
للمصادقة باستخدام رمز مميز للوصول الشخصي ل Azure Databricks، قم بتعيين التكوين التالي.
لتكوين عنوان URL لاتصال JDBC مع خصائص التكوين العامة المضمنة وخصائص بيانات الاعتماد الحساسة، باستخدام PAT الخاص بك:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=3;UID=token;PWD=<personal-access-token>
بالنسبة للتعليمات البرمجية ل Java مع خصائص التكوين العامة وخصائص بيانات الاعتماد الحساسة التي تم تعيينها خارج عنوان URL لاتصال JDBC:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "3");
p.put("UID", "token");
p.put("PWD", "<personal-access-token>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- للحصول على مثال التعليمات البرمجية Java الكامل الذي يمكنك تكييف القصاصة البرمجية السابقة لاحتياجاتك الخاصة، راجع مثال التعليمات البرمجية في بداية هذه المقالة.
- في عنوان URL السابق أو رمز Java، استبدل
<personal-access-token>
برمز الوصول الشخصي Databricks لمستخدم مساحة العمل. - للحصول على قيم
<server-hostname>
و، راجع إعدادات الحساب لبرنامج تشغيل Databricks<http-path>
JDBC.
الرمز المميز لمعرف Microsoft Entra
تدعم برامج تشغيل ODBC وJDBC 2.6.15 والإصدارات الأحدث الرموز المميزة لمعرف Microsoft Entra لمستخدم Azure Databricks أو كيان خدمة معرف Microsoft Entra.
لإنشاء رمز مميز للوصول إلى معرف Microsoft Entra، قم بما يلي:
- بالنسبة لمستخدم Azure Databricks، يمكنك استخدام Azure CLI. راجع الحصول على الرموز المميزة لمعرف Microsoft Entra للمستخدمين باستخدام Azure CLI.
- للحصول على أساس خدمة معرف Microsoft Entra، راجع الحصول على رمز مميز للوصول إلى معرف Microsoft Entra باستخدام Azure CLI. لإنشاء كيان خدمة مدار من Microsoft Entra ID، راجع إدارة كيانات الخدمة.
الرموز المميزة للوصول إلى معرف Microsoft Entra لها عمر افتراضي يبلغ حوالي ساعة واحدة. يمكن تحديث رمز الوصول برمجيا لجلسة عمل موجودة دون قطع الاتصال عن طريق تشغيل التعليمات البرمجية في تحديث رمز مميز للوصول إلى معرف Microsoft Entra. للحصول على إرشادات حول كيفية تحديث الرمز المميز، راجع القسم Configuring Authentication > Using OAuth 2.0
في دليل برنامج تشغيل Databricks JDBC.
للمصادقة باستخدام رمز مميز لمعرف Microsoft Entra، قم بتعيين التكوين التالي.
بالنسبة إلى عنوان URL لاتصال JDBC مع خصائص التكوين العامة المضمنة وخصائص بيانات الاعتماد الحساسة:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<microsoft-entra-id-token>
بالنسبة للتعليمات البرمجية ل Java مع خصائص التكوين العامة وخصائص بيانات الاعتماد الحساسة التي تم تعيينها خارج عنوان URL لاتصال JDBC:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "0");
p.put("Auth_AccessToken", "<microsoft-entra-id-token>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- للحصول على مثال التعليمات البرمجية Java الكامل الذي يمكنك تكييف القصاصة البرمجية السابقة لاحتياجاتك الخاصة، راجع مثال التعليمات البرمجية في بداية هذه المقالة.
- في عنوان URL السابق أو التعليمات البرمجية ل Java، استبدل
<microsoft-entra-id-token>
برمز معرف Microsoft Entra المميز. - للحصول على قيم
<server-hostname>
و، راجع إعدادات الحساب لبرنامج تشغيل Databricks<http-path>
JDBC.
لمزيد من المعلومات، راجع القسم في Token Pass-through
دليل برنامج تشغيل Databricks JDBC.
رموز OAuth 2.0 المميزة
يدعم برنامج تشغيل JDBC 2.6.36 والإصدارات الأحدث رمز OAuth 2.0 المميز لكيان خدمة معرف Microsoft Entra. يعرف هذا أيضا باسم مصادقة مرور الرمز المميز OAuth 2.0.
- لإنشاء رمز OAuth 2.0 المميز للمصادقة التمريرية للرمز المميز لكيان خدمة معرف Microsoft Entra، راجع إنشاء رموز الوصول المميزة واستخدامها يدويا لمصادقة OAuth M2M. دون قيمة OAuth
access_token
الخاصة بكيان الخدمة. - لإنشاء كيان خدمة مدار من Microsoft Entra ID، راجع إدارة كيانات الخدمة.
هام
يدعم برنامج تشغيل JDBC 2.6.36 وما فوق استخدام أسرار Azure Databricks OAuth لإنشاء رموز OAuth المميزة 2.0. أسرار معرف Microsoft Entra غير مدعومة.
الرموز المميزة OAuth 2.0 لها عمر افتراضي يبلغ ساعة واحدة. لإنشاء رمز OAuth 2.0 مميز جديد، كرر هذه العملية.
للمصادقة باستخدام مصادقة مرور الرمز المميز OAuth 2.0، قم بتعيين التكوين التالي.
بالنسبة إلى عنوان URL لاتصال JDBC مع خصائص التكوين العامة المضمنة وخصائص بيانات الاعتماد الحساسة:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<oauth-token>
بالنسبة للتعليمات البرمجية ل Java مع خصائص التكوين العامة وخصائص بيانات الاعتماد الحساسة التي تم تعيينها خارج عنوان URL لاتصال JDBC:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "0");
p.put("Auth_AccessToken", "<oauth-token>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- للحصول على مثال التعليمات البرمجية Java الكامل الذي يمكنك تكييف القصاصة البرمجية السابقة لاحتياجاتك الخاصة، راجع مثال التعليمات البرمجية في بداية هذه المقالة.
- في عنوان URL السابق أو رمز Java، استبدل
<oauth-token>
برمز Azure Databricks OAuth المميز. (الرموز المميزة لمعرف Microsoft Entra غير مدعومة لمصادقة مرور الرمز المميز OAuth 2.0.) - للحصول على قيم
<server-hostname>
و، راجع إعدادات الحساب لبرنامج تشغيل Databricks<http-path>
JDBC.
لمزيد من المعلومات، راجع القسم في Token Pass-through
دليل برنامج تشغيل Databricks JDBC.
مصادقة OAuth من مستخدم إلى جهاز (U2M)
يدعم برنامج تشغيل JDBC 2.6.36 والإصدارات الأحدث مصادقة OAuth من مستخدم إلى جهاز (U2M) لمستخدم Azure Databricks. يعرف هذا أيضا باسم المصادقة المستندة إلى المستعرض OAuth 2.0.
لا توجد متطلبات أساسية للمصادقة المستندة إلى المستعرض OAuth U2M أو OAuth 2.0. الرموز المميزة OAuth 2.0 لها عمر افتراضي يبلغ ساعة واحدة. يجب أن تقوم المصادقة المستندة إلى المستعرض OAuth U2M أو OAuth 2.0 بتحديث رموز OAuth 2.0 المميزة منتهية الصلاحية لك تلقائيا.
إشعار
تعمل المصادقة المستندة إلى المستعرض OAuth U2M أو OAuth 2.0 فقط مع التطبيقات التي تعمل محليا. لا يعمل مع التطبيقات المستندة إلى الخادم أو التطبيقات المستندة إلى السحابة.
للمصادقة باستخدام مصادقة OAuth من مستخدم إلى جهاز (U2M) أو مصادقة مستندة إلى مستعرض OAuth 2.0، قم بتعيين التكوين التالي.
بالنسبة إلى عنوان URL لاتصال JDBC مع خصائص التكوين العامة المضمنة وخصائص بيانات الاعتماد الحساسة:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=2;TokenCachePassPhrase=<passphrase>;EnableTokenCache=0
بالنسبة للتعليمات البرمجية ل Java مع خصائص التكوين العامة وخصائص بيانات الاعتماد الحساسة التي تم تعيينها خارج عنوان URL لاتصال JDBC:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "2")
p.put("TokenCachePassPhrase", "<passphrase>");
p.put("EnableTokenCache", "0");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- للحصول على مثال التعليمات البرمجية Java الكامل الذي يمكنك تكييف القصاصة البرمجية السابقة لاحتياجاتك الخاصة، راجع مثال التعليمات البرمجية في بداية هذه المقالة.
- في عنوان URL السابق أو التعليمات البرمجية ل Java، استبدل
<passphrase>
بعبارة مرور من اختيارك. يستخدم برنامج التشغيل هذا المفتاح لتحديث تشفير الرمز المميز. - للحصول على قيم
<server-hostname>
و، راجع إعدادات الحساب لبرنامج تشغيل Databricks<http-path>
JDBC.
لمزيد من المعلومات، راجع القسم في Using Browser Based Authentication
دليل برنامج تشغيل Databricks JDBC.
مصادقة OAuth من جهاز إلى جهاز (M2M)
يدعم برنامج تشغيل JDBC 2.6.36 والإصدارات الأحدث مصادقة OAuth من جهاز إلى جهاز (M2M) لكيان خدمة معرف Microsoft Entra. يعرف هذا أيضا باسم مصادقة بيانات اعتماد عميل OAuth 2.0.
إشعار
يعمل JDBC 2.6.40.1071 على حل المشكلة في الإصدارات الأقدم التي لم يكن الاتصال باستخدام M2M لمساحات عمل الارتباطات الخاصة مدعوما.
لتكوين مصادقة بيانات اعتماد عميل OAuth M2M أو OAuth 2.0، قم بما يلي:
إنشاء كيان خدمة مدار من Microsoft Entra ID ثم تعيينه إلى حسابات Azure Databricks ومساحات العمل. للقيام بذلك، راجع إدارة كيانات الخدمة.
هام
يدعم برنامج تشغيل JDBC 2.6.36 والإصدارات الأحدث أسرار Azure Databricks OAuth لمصادقة بيانات اعتماد عميل OAuth M2M أو OAuth 2.0. أسرار معرف Microsoft Entra غير مدعومة.
إنشاء سر Azure Databricks OAuth لمدير الخدمة. للقيام بذلك، راجع إنشاء رموز الوصول المميزة واستخدامها يدويا لمصادقة OAuth M2M.
امنح كيان الخدمة حق الوصول إلى نظام المجموعة أو المستودع. راجع حساب الأذونات أو إدارة مستودع SQL.
للمصادقة باستخدام مصادقة بيانات اعتماد عميل OAuth من جهاز إلى جهاز (M2M) أو OAuth 2.0، قم بتعيين التكوين التالي.
بالنسبة إلى عنوان URL لاتصال JDBC مع خصائص التكوين العامة المضمنة وخصائص بيانات الاعتماد الحساسة:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=1;OAuth2ClientId=<service-principal-application-id>;OAuth2Secret=<service-principal-oauth-secret>
بالنسبة للتعليمات البرمجية ل Java مع خصائص التكوين العامة وخصائص بيانات الاعتماد الحساسة التي تم تعيينها خارج عنوان URL لاتصال JDBC:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "1");
p.put("OAuth2ClientId", "<service-principal-application-id>");
p.put("OAuth2Secret", "<service-principal-oauth-secret>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- للحصول على مثال التعليمات البرمجية Java الكامل الذي يمكنك تكييف القصاصة البرمجية السابقة لاحتياجاتك الخاصة، راجع مثال التعليمات البرمجية في بداية هذه المقالة.
- في عنوان URL السابق أو التعليمات البرمجية ل Java، استبدل العناصر النائبة التالية:
- استبدل
<service-principal-application-id>
بقيمة معرف التطبيق (العميل) لمدير الخدمة. - استبدل
<service-principal-oauth-secret>
بسر Azure Databricks OAuth الخاص بكيان الخدمة. (أسرار معرف Microsoft Entra غير مدعومة لمصادقة بيانات اعتماد عميل OAuth M2M أو OAuth 2.0.) - للحصول على قيم
<server-hostname>
و، راجع إعدادات الحساب لبرنامج تشغيل Databricks<http-path>
JDBC.
- استبدل
لمزيد من المعلومات، راجع القسم في Using M2M Based Authentication
دليل برنامج تشغيل Databricks JDBC.