辛巴配置JDBC驱动程序使用Azure广告

访问砖与辛巴的JDBC驱动程序使用Azure用户帐户和Azure广告身份验证。

写的arvind.ravish

去年发表在:2022年12月7日

本文描述如何访问Azure砖与辛巴的JDBC驱动程序使用Azure广告身份验证。

这可能是有用的,如果你想使用一个Azure广告用户帐户连接到Azure砖。

删除

信息

权力BI原生支持Azure广告认证Azure的砖。检查权力BI文档的更多信息。

创建一个服务主体

创建一个服务主体在Azure广告。服务主体获得用户的访问令牌。

  1. 打开Azure门户
  2. 打开Azure活动目录服务。
  3. 点击应用程序注册在左边的菜单。
  4. 点击新的注册
  5. 完整的表单并单击注册

你的服务主体已经成功创建了。

配置服务主体的权限

  1. 打开创建的服务主体。
  2. 点击API的权限在左边的菜单。
  3. 点击添加一个权限
  4. 点击Azure权利管理服务
  5. 点击委托权限
  6. 选择user_impersonation
  7. 点击添加权限
  8. user_impersonation现在允许分配给你的服务主体。
删除

信息

如果格兰特管理员同意未启用,以后你可能会遇到一个错误。

更新服务主体清单

  1. 点击清单在左边的菜单。
  2. 寻找包含“allowPublicClient”财产。
  3. 将值设置为真正的
  4. 点击保存

下载和配置JDBC驱动程序

  1. 下载砖JDBC驱动程序
  2. 配置JDBC驱动程序详细的文档。

获得Azure广告令牌

使用示例代码获取Azure广告为用户令牌。

替换的变量值,适合您的帐户。

%从adal python导入AuthenticationContext authority_host_url = " https://login.microsoftonline.com/ " " # Azure砖azure_databricks_resource_id的应用程序ID = " 2 ff814a6 - 3304 - 4 - ab8 - 85 - cb - cd0e6f879c1d“#需要用户输入user_parameters ={“租户”:“< tenantId >”,“client_id”:“< clientId >”,“用户名”:“< user@domain.com >”,“密码”:<密码>}#配置AuthenticationContext #权威authority_url使用URL和承租者ID = authority_host_url + user_parameters(“承租人”)背景= AuthenticationContext (authority_url) # API调用来获取令牌token_response =上下文。acquire_token_with_username_password (azure_databricks_resource_id user_parameters(“用户”),user_parameters['密码'],user_parameters [' client_id ']) access_token = token_response [' accessToken '] refresh_token = token_response (“refreshToken”)

通过Azure广告令牌JDBC驱动程序

现在您已经用户的Azure广告令牌,你可以将它传递给JDBC驱动程序使用Auth_AccessToken在详细的JDBC URL建筑砖的连接URL驱动程序文档。

这个示例代码演示了如何通过Azure广告令牌。

% #安装python jaydebeapi pypi模块(用于演示)导入jaydebeapi大熊猫作为pd导入导入操作系统os。环境(“路径”)= " <路径下载辛巴火花JDBC / ODBC驱动程序>“# JDBC连接字符串url = " JDBC:火花:/ /亚洲开发银行- 111111111111 xxxxx.xx.azuredatabricks.net: 443 /违约;运输方式= http; ssl = 1; httpPath = sql / protocolv1 / o / < workspaceId > / < clusterId >; AuthMech = 11; Auth_Flow = 0; Auth_AccessToken = {0} " .format (access_token)尝试:康涅狄格州= jaydebeapi.connect (“com.simba.spark.jdbc。司机”,url)光标= conn.cursor() #执行SQL查询SQL = " select * from <表>”cursor.execute (SQL)结果= cursor.fetchall () column_names = [x [0] x cursor.description) pdf = pd。DataFrame(结果、列= column_names)打印(pdf.head()) #取消以下两行如果这段代码运行在工作区中的砖连接IDE或笔记本。# df = spark.createDataFrame (pdf) # df.show()最后:如果光标不是没有:cursor.close ()


这篇文章有用吗?