GaussDB(DWS) 支持在Linux或Windows环境下使用JDBC应用程序连接数据库。应用程序可以在公有云环境的弹性云服务器中,或者互联网环境连接数据库。
用户通过JDBC连接GaussDB(DWS) 集群时,可以选择是否采用SSL认证方式。SSL认证用于加密客户端和服务器之间的通讯数据,为敏感数据在Internet上的传输提供了一种安全保障手段。GaussDB(DWS) 管理控制台提供了自签的证书供用户下载。使用该证书,用户需要配置客户端程序,使证书可用,此过程依赖于openssl工具以及java自带的keytool工具。
SSL模式安全性高于普通模式,建议在使用JDBC连接GaussDB(DWS) 集群时采用SSL模式。
JDBC接口的使用方法,请自行查阅官方文档。
前提条件已安装JDK 1.6或以上版本,并配置环境变量。
已下载JDBC驱动,请参见下载JDBC或ODBC驱动。
GaussDB(DWS) 也支持开源的JDBC驱动程序:PostgreSQL JDBC驱动程序9.3-1103或更高版本。
已下载SSL证书文件,请参见(可选)下载SSL证书。
使用JDBC连接数据库
在Linux和Windows环境下操作方法相同,以下步骤以Windows环境为例。
是否采用SSL方式连接GaussDB(DWS) 集群。
是:为GaussDB(DWS) 集群开启SSL连接,默认为开启。具体操作,请参见(可选)设置SSL连接。
请确认是采用证书认证方式还是密码认证方式。采用证书认证方式:执行2。
采用密码认证方式:执行4。
否:为GaussDB(DWS) 集群关闭SSL连接,默认为开启。具体操作,请参见(可选)设置SSL连接。
执行4。
(可选)如果使用Linux环境,使用WinScp工具将SSL证书上传到Linux环境上。
配置证书以使用SSL加密连接。
解压压缩包得到证书文件。假设解压路径为“$SSL_PATH”。
证书文件建议保存在英文路径,配置证书时需要根据实际情况指定路径,否则可能提示文件不存在。
打开“命令提示符”程序,切换到“$SSL_PATH\dws_ssl_cert\sslcert”路径下,执行以下两条命令,转化根证书并导入到trustStore中。openssl x509 -in cacert.pem -out cacert.crt.der -outform der
keytool -keystore mytruststore -alias cacert -import -file cacert.crt.der
“cacert.pem”为解压后获取的根证书。
“cacert.crt.der”为生成的中间文件。根据实际情况,可以填写保存到其他路径,也可以自定义文件名称。
“mytruststore”为生成的可信库名称,“cacert”为别名用户,二者可以根据需要进行修改。
请用户根据提示信息输入自定义的可信库密码并确认密码例如“truststore123”,然后输入“y”确认信任证书。
执行以下命令转化客户端私钥。openssl pkcs12 -export -out client.pkcs12 -in client.crt -inkey client.key
需要输入客户端私钥的密码“Gauss@MppDB”,然后输入并确认用户自定义的私钥密码例如“key123”。
执行以下命令,将私钥导入到keyStore中。keytool -importkeystore -deststorepass Gauss@MppDB -destkeystore client.jks -srckeystore client.pkcs12 -srcstorepass key123 -srcstoretype PKCS12 -alias 1
解压已下载的JDBC驱动得到“gsjdbc4.jar”。
在应用程序的工程中,设置引用Jar包。
以Eclipse工程为例,先将jar包存放在工程目录下,例如将jar包放在工程目录的lib目录下,然后在Eclipse工程中,右键单击lib目录下的该jar包,再选择菜单“Build Path”,即可引用此jar包。
图1引用jar包
或者,您也可以使用另一种方式,在Maven工程中,可以直接将GaussDB(DWS) JDBC驱动作为依赖项添加进POM文件,配置如下所示:
1
2
3
4
5
com.huaweicloud.dws
huaweicloud-dws-jdbc
1.0.0
加载驱动。
支持以下两种方法加载:
在代码中隐含装载:Class.forName("org.postgresql.Driver");
在JVM启动时参数传递:java -Djdbc.driver