如何通过具有kerberos身份验证的sparklyr通过JDBC连接连接到SQL Server?

时间:2018-07-20 05:48:46

标签: sql-server apache-spark jdbc kerberos sparklyr

我无法通过JDBC连接使用Kerberos访问SQL Server数据库。请注意,我正在运行带有Spark版本2.2.0的Linux。

我没有在spark_connect中指定与kerberos票相关的任何内容,因为我听说rstudio server pro可能具有重叠功能,尽管我不确定它是否适用于此。

我的联系如下:

table <- sparklyr::spark_read_jdbc(
  sc, 
  "AMI_DATA_STAG_RES", 
  options = c(list(
    url = paste0("jdbc:sqlserver://", <MY SERVER>), 
    databaseName = "fun_db", 
    dbtable = "fun_tbl", 
    driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver",
    integratedSecurity = "true",
    authenticationScheme = "JavaKerberos"))
  )

我得到的错误是:

Error: com.microsoft.sqlserver.jdbc.SQLServerException: 
    Kerberos Login failed: Integrated authentication failed.
    ClientConnectionId:878fa848-91cb-4d78-bd48-6dad88b1e401 
      due to javax.security.auth.login.LoginException 
        (Cannot get any of properties: [user, USER] from con properties not available to garner  authentication information  from the user)

我已经在Internet上阅读了解决方案,但是我不确定什么适用于Windows,哪些可以在Redhat上使用我的Rstudio Server设置。

任何帮助表示赞赏。我对Kerberos的美好世界还很陌生。

编辑:我已经更新了我的拼写(谢谢!),并粘贴了新的错误。如果我将用户名和密码添加到连接字符串中,那么我认为它确实有效,但是我想避免不必粘贴密码。

仅添加我的用户名会产生错误:

Error: com.microsoft.sqlserver.jdbc.SQLServerException: Cannot login with Kerberos principal dzafar, check your credentials. Kerberos Login failed: Integrated authentication failed. ClientConnectionId:543c9b44-e1e0-4fe8-8510-235a21be2845 due to javax.security.auth.login.LoginException (Cannot get any of properties: [password, PASSWORD] from con properties not available to garner  authentication information from the user)

0 个答案:

没有答案