通过jdbc连接rds for postgresql实例-九游平台
通过jdbc连接实例的方式有无需下载ssl证书连接和用户下载ssl证书连接两种,其中使用ssl证书连接通过了加密功能,具有更高的安全性。
前提条件
用户需要具备以下技能:
- 熟悉计算机基础知识。
- 了解java编程语言。
- 了解jdbc基础知识。
驱动获取及使用
- jdbc驱动下载地址:
- jdbc接口使用指南请参考:
使用ssl证书连接
该方式属于ssl连接模式,需要下载ssl证书,通过证书校验并连接数据库。
您可以在“实例管理”页面,单击实例名称进入“基本信息”页面,单击“数据库信息”模块“ssl”处的,下载根证书或捆绑包。
- 通过jdbc连接postgresql数据库,代码中的jdbc链接格式如下:
jdbc:postgresql://
: / ?sslmode=verify-ca&sslrootcert= 表1 参数说明 参数
说明
如果通过弹性云服务器连接,“instance_ip”是主机ip,即“基本信息”页面该实例的“内网地址”。
如果通过连接了公网的设备访问,“instance_ip”为该实例已绑定的“弹性公网ip”。
端口,默认5432,当前端口,参考“基本信息”页面该实例的“数据库端口”。
数据库名,即需要连接的数据库名(默认的管理数据库是postgres)。
sslmode
ssl连接模式。
verify-ca:表示我想要对数据加密,并且我接受因此带来的负荷。我想要确保我连接到的是我信任的服务器。
其他可选项请参考:。
sslrootcert
ssl连接ca证书路径,参数详情请参考。
连接postgresql数据库的java代码,可参考以下示例:
// 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放,使用时解密),确保安全。 // 本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)example_username_env和example_password_env。 import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.statement; public class myconntest { final public static void main(string[] args) { connection conn = null; // set sslmode here. // with ssl certificate and path. string url = "jdbc:postgresql://
: / ?sslmode=verify-ca&sslrootcert=/home/ruby/ca.pem"; string username = system.getenv("example_username_env"); string password = system.getenv("example_password_env"); try { class.forname("org.postgresql.driver"); conn = drivermanager.getconnection(url, username, password); system.out.println("database connected"); statement stmt = conn.createstatement(); resultset rs = stmt.executequery("select * from mytable where columnfoo = 500"); while (rs.next()) { system.out.println(rs.getstring(1)); } rs.close(); stmt.close(); conn.close(); } catch (exception e) { e.printstacktrace(); system.out.println("test failed"); } finally { // release resource .... } } }
无证书连接
该方式属于ssl连接模式,但不对服务端进行证书校验,用户无需下载ssl证书。
- 通过jdbc连接rds for postgresql数据库实例,代码中的jdbc链接格式如下:
jdbc:postgresql://
: / ?sslmode=disable 表2 参数说明 参数
说明
如果通过弹性云服务器连接,“instance_ip”是主机ip,即“基本信息”页面该实例的“内网地址”。
如果通过连接了公网的设备访问,“instance_ip”为该实例已绑定的“弹性公网ip”。
端口,默认5432,当前端口,参考“基本信息”页面该实例的“数据库端口”。
数据库名,即需要连接的数据库名(默认的管理数据库是postgres)。
sslmode
ssl连接模式。
disable:表示我不关心安全性,也不想为加密支付开销。
其他可选项请参考:。
连接postgresql数据库的java代码,可参考以下示例:
// 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放,使用时解密),确保安全。 // 本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)example_username_env和example_password_env。 import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.statement; public class myconntest { final public static void main(string[] args) { connection conn = null; // set sslmode here. // no ssl certificate, so do not specify path. string url = "jdbc:postgresql://
: / ?sslmode=disable"; string username = system.getenv("example_username_env"); string password = system.getenv("example_password_env"); try { class.forname("org.postgresql.driver"); conn = drivermanager.getconnection(url, username, password); system.out.println("database connected"); statement stmt = conn.createstatement(); resultset rs = stmt.executequery("select * from mytable where columnfoo = 500"); while (rs.next()) { system.out.println(rs.getstring(1)); } rs.close(); stmt.close(); conn.close(); } catch (exception e) { e.printstacktrace(); system.out.println("test failed"); } finally { // release resource .... } } }
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨