Jdbc 从 build54.4.7 版本开始支持支持 kerberos 认证方式与集群或者 8a 单机进行连接。使用前必须确保数据库版本支持 kerberos 认证并且已经配置好 kerberos 认证相关服务。具体使用可以参考数据库手册要求。 以下操作仅在认为集群或者 8a 已经配置好 kerberos 相关服务基础上进行 的操作。 1:需要从集群获取keytab文件,拷贝到某一目录 2:需要执行kinit命令初始化票据凭证,最后一个参数为kerberos client端 principal name 1)linux: kinit -kt /opt/gcluster/ktest1.keytab ktest1@gbase.cn 2)window:kinit -k -t D:\\svn\\kerberos\\ktest1.keytab ktest1@gbase.cn 3:url进行设置 enableKerberosFlag=true :开启认证方式 clientPrincipalName=ktest1 :设置客户端principal name,注意不需要 输入@gbse.cn kerberosKeyTab="D:\\svn\\kerberos\\ktest1.keytab",设置keytab路径 4:从kerberos服务器获取krb5.conf文件(linux默认安装在/etc下面),如果 jdbc部署在linxu服务器下,直接拷贝到/etc下即可;如果部署在windows 将其修改名字为 krb5.ini 然后复制到 C:\Windows 下面,注意里面的路 径信息请修改为实际存在的路径。 5: 确保 jdbc 所在机器的时间与 kerberos 服务器时间一致 以上配置正确后可以使用如下方式进行连接
//是否输出认证过程中重要参数信息。生产环境可以不设置。
System.setProperty("sun.security.krb5.debug","true"); System.setProperty("sun.security.jgss.debug","true"); String url ="jdbc:gbase://192.168.6.122:5258/test?user=ktest&traceProtocol=false" + "&profileSql=false" + "&enableKerberosFlag=true" + "&clientPrincipalName=ktest1" +"&kerberosKeyTab=D:\\svn\\kerberos\\ktest1.keytab" ; Class.forName("com.gbase.jdbc.Driver"); Connection conn = DriverManager.getConnection(url); Statement st = conn.createStatement(); st.execute("insert into bht1 values(1,'bht')"); st.setMaxRows(2); ResultSet rs =st.executeQuery("select * from bht1"); while(rs.next()){ System.out.println(rs.getString(1)+rs.getString("b")); } conn.close(); System.out.println("fin"); 从上代码可以看到连接集群不再需要使用 password,而仅仅只需要 kerberos 服务器认证过的 user 即可。
GBase JDBC 介绍
GBase数据库通过提供JDBC驱动为使用JAVA程序语言的应用程序提供访问 GBase 数据库的接口,叫做 GBase JDBC。 GBase JDBC 是一种兼容 JDBC-3.0、4.0 "类型 4"的驱动,这意味着它是符 合JDBC 3.0、4.0版本规范的一种纯Java程序,并能使用GBase协议直接和GBase 服务器通信。 这一章并不是完整的 JDBC 指南。如果需要了解 JDBC 的更多信息,请参考 下面的在线教程,与本章提供的内容相比,它们介绍的更为详细也更具深度:
JDBC Basics – Sun 提供的 JDBC 指南,涵盖了 JDBC 的基本主题。
JDBC Short Course - Sun 和 JGuru 提供的更深入的指南。
GBase JDBC 版本
GBase JDBC 8.3.81.51 提供了如下新特性: 1) 自动注册驱动(需要 jdk1.6 的) 2) National Character Set Conversion Support GBase JDBC 8.3.81.53 提供了如下新特性: 1) 针对 GBase8a 集群提供高可用性(IP 自动路由)功能; GBase JDBC 8.3.81.53_build51.1 提供了如下新特性: 1) 针对 GBase8a 集群提供高可用性负载均衡功能; GBase JDBC 驱动与 Server 的对应关系如下表格所示:





