【问题标题】:Cassandra jdbc connection with Authentication带有身份验证的 Cassandra jdbc 连接
【发布时间】:2021-08-06 09:50:29
【问题描述】:

我正在尝试使用 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 没有身份验证。我如何在那里提供用户名和密码。

【问题讨论】:

    标签: java jdbc cassandra cassandra-jdbc


    【解决方案1】:

    CData's (poor) documentationUserPassword 列为可添加到 JDBC 连接字符串的可用属性。您可以将这些与您的用户名和密码一起添加以进行身份​​验证:

    con = DriverManager.getConnection(
            "jdbc:cassandra://localhost:9160;User=ayush;Password=yourpwd");
    

    您也可以将它们添加为属性,详见其Connecting From Code 示例:

    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 上使用本机二进制协议。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-09
      • 2017-01-15
      • 1970-01-01
      • 1970-01-01
      • 2012-02-08
      • 2014-08-24
      • 1970-01-01
      相关资源
      最近更新 更多