3

サービス プリンシパル経由で Azure Databricks から Azure SQL Database に接続する必要があります。フォーラムを検索しようとしましたが、適切なアプローチを見つけることができませんでした。どんな助けでも大歓迎です。

JDBC接続でSQLユーザーIDとパスワードを使用して同様のアプローチを試みたところ、正常に機能しました。現在、サービス プリンシパルのアプローチを検討しています。

PS: SP ID とキーは Azure Key Vault に配置する必要があり、Databricks でここにアクセスする必要があります。

4

4 に答える 4

0

SQL Server および Azure SQL 用の Apache Spark コネクタを使用でき ます。Databricks で行う必要があることの例は、次の Python ファイルにあります。

ご覧のとおり、サービス プリンシパルに直接接続するのではなく、サービス プリンシパルを使用して、後で接続パラメーターを指定するときに使用するアクセス トークンを生成しています。

          jdbc_df = spark.read.format("com.microsoft.sqlserver.jdbc.spark") \
          .option("url", url) \
          .option("dbtable", db_table) \
          .option("accessToken", access_token) \
          .option("encrypt", "true") \
          .option("databaseName", database_name) \
          .option("hostNameInCertificate", "*.database.windows.net") \
          .load() 

ただし、以前のライブラリを使用できない、または使用したくない場合は、Spark のネイティブ Azure-SQL JDBC コネクタでも同じことができます。

          jdbc_df = spark.read.format("com.microsoft.sqlserver.jdbc.SQLServerDriver")\
          .option("url", url) \
          .option("dbtable", db_table) \
          .option("accessToken", access_token) \
          .option("encrypt", "true") \
          .option("databaseName", database_name) \
          .option("hostNameInCertificate", "*.database.windows.net") \
          .load() 
于 2021-05-20T21:14:01.107 に答える
0

このチュートリアルを参照できるかもしれません: Azure SQL データベースへの AAD 認証の構成

まとめ

Azure SQL は優れたサービスです。厄介なサーバー関連のすべてを管理する必要なく、データベースをクラウドに移行できます。ただし、Azure SQL の問題の 1 つは、SQL 認証 (ユーザー名とパスワード) を使用して認証する必要があることです。ただし、Azure Active Directory (AAD) トークンを介して認証することもできます。これは、Windows 認証を使用した統合ログインに似ていますが、Active Directory の代わりに AAD を使用しています。

AAD 認証には多くの利点があります。

  1. ユーザーが AAD 資格情報を使用してログインするため、ログインを共有する必要がなくなるため、監査が向上します。
  2. AAD グループを使用してデータベースへのアクセスを管理できます
  3. サービスプリンシパルを介して「アプリ」ログインを有効にできます

これを機能させるには、次のものが必要です。

  1. Azure SQL Server で AAD 認証を有効にするには
  2. サービスプリンシパル
  3. データベースにログインを追加して、サービス プリンシパルに必要な権限を付与します。
  4. データベースにアクセスするための認証トークンを取得するコードを追加する

ただし、この記事では、サービス プリンシパルの作成、AAD 認証用のデータベースの構成、トークンを取得するためのコードの作成、および AAD 認証用の EF DbContext の構成について説明します。

このチュートリアルがお役に立てば幸いです。

于 2019-04-03T03:34:28.233 に答える