取消
顯示的結果
而不是尋找
你的意思是:

我如何配置一個外部metastore Azure磚使用一個服務主體而不是SQL的用戶進行身份驗證?

KTheJoker
貢獻者三世

外部metastore的默認設置是使用SQL用戶和密碼。有沒有一種方法使用Azure廣告服務主體呢?

1接受解決方案

接受的解決方案

KTheJoker
貢獻者三世

是的,你可以這樣做。

1)服務主體添加到數據庫中

2)存儲服務主體客戶ID和客戶秘密在一個秘密的範圍。在這個例子中,我們假設他們被存儲為client_idclient_secret在一個範圍sp_scope

3)在火花配置文本區域的先進部分在創建集群的過程中,使用以下設置,替換您的SQL服務器連接URL中服務器和數據庫名稱:

  • spark.hadoop.javax.jdo.option。ConnectionURL =jdbc::狀態"置疑" / /< database-server-name >database.windows.net:1433;數據庫=<數據庫名稱>加密= true; trustServerCertificate = false; hostNameInCertificate = *。database.windows.net;驗證= ActiveDirectoryServicePrincipal; aadSecurePrincipalId ={{秘密/ sp_scope client_id}}; aadSecurePrincipalSecret ={{秘密/ sp_scope client_secret}}
  • spark.hadoop.javax.jdo.option。ConnectionUserName = " "(空字符串)
  • spark.hadoop.javax.jdo.option。ConnectionPassword = " "(空字符串)

您還可以設置這些值在全球範圍內跨集群通過使用集群政策

在原帖子查看解決方案

6個回答6

KTheJoker
貢獻者三世

是的,你可以這樣做。

1)服務主體添加到數據庫中

2)存儲服務主體客戶ID和客戶秘密在一個秘密的範圍。在這個例子中,我們假設他們被存儲為client_idclient_secret在一個範圍sp_scope

3)在火花配置文本區域的先進部分在創建集群的過程中,使用以下設置,替換您的SQL服務器連接URL中服務器和數據庫名稱:

  • spark.hadoop.javax.jdo.option。ConnectionURL =jdbc::狀態"置疑" / /< database-server-name >database.windows.net:1433;數據庫=<數據庫名稱>加密= true; trustServerCertificate = false; hostNameInCertificate = *。database.windows.net;驗證= ActiveDirectoryServicePrincipal; aadSecurePrincipalId ={{秘密/ sp_scope client_id}}; aadSecurePrincipalSecret ={{秘密/ sp_scope client_secret}}
  • spark.hadoop.javax.jdo.option。ConnectionUserName = " "(空字符串)
  • spark.hadoop.javax.jdo.option。ConnectionPassword = " "(空字符串)

您還可以設置這些值在全球範圍內跨集群通過使用集群政策

Hubert_Dudek1
尊敬的貢獻者三世

太好了,看來,我將測試它在實踐中,請等待幾天,我不得不metastore遷移:slightly_smiling_face:

tonyd
新的貢獻者二世

@Kyle黑爾

我得到一個錯誤而執行以下步驟提到了你。

java.sql。SQLException: Unable to open a test connection to the given database. JDBC url = jdbc:sqlserver://sdees.database.windows.net:1433;數據庫=蜂巢;加密= true; trustServerCertificate = false; hostNameInCertificate = *。database.windows.net;驗證= ActiveDirectoryServicePrincipal; aadSecurePrincipalId ={{秘密/ databricks_svcprincipal / svcprincipalid}}; aadSecurePrincipalSecret ={{秘密/ databricks_svcprincipal / svcprincipalsecret}},用戶名= "。終止連接池(如果你希望開始lazyInit設置為true數據庫應用程序之後)。原始異常:- - - - - -

com.microsoft.sqlserver.jdbc。SQLServerException: The connection string contains a badly formed name or value.

KTheJoker
貢獻者三世

你之間有逗號principalsecret和用戶名,這是不允許的在一個JDBC連接字符串。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map