我在互联网上做了很多关于数据库的工作。我的公司正在制定不发送任何非加密信息(包括vanilla JDBC)的政策。我目前连接到MS SQL Server和IBM DB2数据库(LUW和AS / 400)。有没有一种简单的方法来加密/解密这些连接?
编辑: 找到了一篇有趣且相对简单的SSH隧道文章,可能会有所帮助。 http://www.ibm.com/developerworks/data/library/techarticle/dm-0312lurie/index.html
答案 0 :(得分:4)
如果您的数据库也支持SSL和JDBC驱动程序,那么可能是JDBC over SSL。快速的Google搜索显示Microsoft SQL Server JDBC驱动程序1.2支持SSL加密,IBM DB2 JDBC驱动程序9.1包括对也支持SSL的数据库服务器的SSL支持。
一些链接:
答案 1 :(得分:3)
我会使用SSH隧道与公钥认证或VPN网络。这样,除了应用程序/数据库之外,您还可以定义加密,并添加一层额外的身份验证。
然后确保MySQL仅在localhost或VPN接口上侦听(或仅允许连接)。
您的JDBC Connection Url然后只是连接到localhost:[TUNNEL_PORT]
您不需要额外的开销来配置JDBC或MySQL进行加密。
答案 2 :(得分:2)
文档:
对于DB2:Properties for the IBM DB2 Driver for JDBC and SQLJ(查看属性sslConnection)
对于MSSQL:Using SSL Encryption
答案 3 :(得分:0)
不知道这些数据库,但是oracle可以设置为加密它发出的连接数据(&我认为它接收)。标准的oracle jdbc jar可以处理加密数据,而无需任何客户端配置或编程更改。
此外 - 如果您使用VPN通过互联网连接到您的数据库,那么无论如何都会加密它吗?