繁体   English   中英

Cassandra jdbc 连接与认证

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM