我使用 Apache Common DBCP 库中的“BasicDataSource”类并使用 DataStax 驱动程序“com.simba.cassandra.jdbc42.Driver”连接到带有 Java 的 Cassandra 数据库。当 Cassandra 配置为“authenticator”设置为“AllowAllAuthenticator”时,我可以连接到数据库。但是,当我启用“PasswordAuthenticator”并在“BasicDataSource”对象中设置用户名/密码时,我无法连接并获得异常“主机/IP 地址:端口上的身份验证错误:主机/IP 地址:端口需要身份验证,但没有身份验证器在集群配置中找到。”。建立安全连接需要什么?
问问题
78 次
1 回答
1
我已经回答了我自己的问题。对于遇到相同问题的任何人,解决方案是在 JDBC 连接字符串中包含选项“AuthMech=1”,因为它是经过身份验证的连接所需要的。以下摘自《Simba Cassandra JDBC Driver with SQL Connector》安装配置指南:
“AuthMech
此属性指定驱动程序是否连接到 Cassandra 或 Astra 数据库,以及驱动程序是否对连接进行身份验证。
- 0:驱动程序连接到 Cassandra 数据库而不验证连接。
- 1:驱动程序连接到Cassandra数据库,并使用用户名和密码验证连接。
- 2:驱动程序连接到 Astra 数据库,并使用用户名、密码和安全连接包对连接进行身份验证。”
参考:https ://docs.datastax.com/en/driver-matrix/doc/latestSimbaCassJDBCDriver.html (第31页)
于 2021-06-25T12:00:58.527 回答