[英]Cassandra jdbc connection with Authentication
我正在尝试使用 cdata jdbc 连接器连接到 Cassandra。 但是,我找不到如何在连接 url 中提供用户名和密码。 这是我的 java 代码。
package com.dremio.exec.store.jdbc.conf;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class TestConnection {
public static void main(String[] args) throws Exception {
Connection con = null;
Class.forName("org.apache.cassandra.cql.jdbc.CassandraDriver");
con = DriverManager.getConnection("jdbc:cassandra://localhost:9160");
String query = "SELECT * FROM emp";
Statement stmt = con.createStatement();
ResultSet result = stmt.executeQuery(query);
while (result.next()) {
System.out.println(result.getString("emp_id"));
System.out.println(result.getString("emp_name"));
System.out.println(result.getString("emp_city"));
}
con.close();
}
}
目前,我提供 url 没有身份验证。 我如何在那里提供用户名和密码。
CData 的(较差的)文档将用户和密码列为可添加到 JDBC 连接字符串的可用属性。 您可以使用您的用户名和密码添加这些以进行身份验证:
con = DriverManager.getConnection(
"jdbc:cassandra://localhost:9160;User=ayush;Password=yourpwd");
您还可以将它们添加为属性,如从代码连接示例中详述的那样:
Properties prop = new Properties();
prop.setProperty("Port","9042");
prop.setProperty("Server","127.0.0.1");
prop.setProperty("User","ayush");
prop.setProperty("Password","yourpwd");
Connection conn = DriverManager.getConnection("jdbc:cassandra:",prop);
此外,除非您使用旧的 Cassandra 集群或启用 Thrift 的 3.x 集群,否则 9160 将无法工作。 事实上,Thrift 项目已经有几年没有拉请求了,所以我建议远离它并在 9042 上使用本机二进制协议。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.