当前位置: 首页 > 知识库问答 >
问题:

到SQL server的Kerberos连接是否需要在连接属性中提供密码?

姜宏放
2023-03-14

我正在尝试使用keytab连接到sql server,但它会引发以下错误

当我尝试使用密码时,它连接成功。

String home = System.getProperty("user.dir");
String  filePath = home + File.separator + "conf" + File.separator + "KerberosConfigurations" + File.separator + "MSSQL";// NO I18N
System.setProperty("java.security.krb5.debug", "true");
System.setProperty("java.security.auth.login.config", filePath+File.separator+"login.conf");
System.setProperty("java.security.krb5.conf", filePath+File.separator+"krb5.ini");
System.setProperty("javax.security.auth.useSubjectCredsOnly", "false");
String connectionUrl = "jdbc:sqlserver://"+hostName+":"+port+";databaseName=master;sendStringParametersAsUnicode=true;applicationName=test;"; //NO I18N
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Properties dbConProp = new Properties();
dbConProp.put("integratedSecurity", "true");
dbConProp.put("authenticationScheme", "JavaKerberos");
dbConProp.put("instanceName",instanceName);
dbConProp.put("user",user);
//dbConProp.put("password",pwd);
con = DriverManager.getConnection(connectionUrl,dbConProp);

连接属性中的密码对于kerberos连接是必需的吗?单凭键标还不够吗?

共有1个答案

冯阳成
2023-03-14

客户端首先需要通过域的身份验证。例如,在使用MIT Kerberos的Linux和MacOS上,可以使用kinit命令获取Kerberos票证。

一旦获得授权,您就可以通过该票证对Sql进行身份验证,而无需提供任何其他内容。

[更新]

SQL Server网络接口库已成功注册SQL Server服务的服务主体名称(SPN)[MSSQLSVC/MysqlServerHostName:1433]

Kerberos有很多东西不是一个StackOverflow答案所能涵盖的。

 类似资料:
  • 有个老项目使用的是 ASP+SQL Server,今天把它迁移到新服务器上去。 于是就在新服务器上安装好 IIS 和 SQL Server,就把老服务器上的数据给迁移过来。结果发现 ASP 死活连接不上数据库,检查后发现数据库正常、ASP 也正常,但是就是连接不上。提示找不到数据库 ODBC 什么的…… 后来百度一下说需要在 ODBC 数据源管理中新建一个用户 DSN,照做后正常了。 为什么不是像

  • 问题内容: 要指定SQLite连接属性,请使用org.sqlite.SQLiteConfig,它的内容如下: 使用c3p0创建连接池的过程如下: 问题:如何创建结合了两者的数据源,让我设置诸如连接池的最大池大小和sqlite的同步模式之类的东西? 问题答案: 尝试 现在,数据源将是c3p0 PooledDataSource,它包装了已根据需要配置的SQLite未池化数据源。 请参阅C3P0的文档,

  • 我们很难弄清楚定义的属性,,等等。 我们在以下设置中看到以下错误

  • 我是Spring的新手。我正面临Spring-Boot的问题。我正在尝试将外部配置文件中的字段自动装配到自动装配的bean中。我有以下类 应用程序。Java语言 AppConfig。Java语言 服务接口 服务1 我无法在App类的postconstruct方法中显示服务名称变量。我这样做对吗?

  • 我试图从Websphere Application Server连接到外部JMS提供者。我们可以不使用Websphere MQ从Websphere Application Server连接到远程JMS提供者吗?

  • 我正试图在Apache ignite Sink连接器的帮助下将kafka主题数据加载到ignite缓存中。面临以下问题。所有必需的JAR以及ignite配置(xml)文件都已就绪。 我很不确定为什么它要为IGniteSinkTask$StreamerContext$Holder抛出ConnectException和NoClassDefoundException。由于某些原因,java无法运行这些类