Linux下配置数据源
操作场景
为在Linux系统下通过ODBC提供的API与GaussDB 100进行交互,需配置数据源。
前提条件
请使用unixODBC-2.3.6版本及以上版本。
操作步骤
- 登录http://www.unixodbc.org/,获取unixODBC源码包。
- 编译安装unixODBC。
unixODBC默认安装到“/usr/local”目录下,生成数据源文件到“/usr/local/etc”目录下,库文件生成在“/usr/local/lib”目录。
tar zxvf unixODBC-2.3.6.tar.gz cd unixODBC-2.3.6 ./configure --enable-gui=no make make install
- 配置ODBC驱动文件。
在“/usr/local/etc/odbcinst.ini”文件中追加以下内容。
[GaussDB] Driver64=/usr/local/odbc/lib/libzeodbc.so setup=/usr/local/lib/libzeodbc.so
请根据实际情况配置驱动文件目录。
odbc.ini文件配置参数说明如表1所示。
表1 odbc.ini文件配置参数 参数
描述
示例
[DriverName]
驱动器名称,对应数据源DSN中的驱动名。
[DRIVER_N]
Driver64
驱动动态库的路径。
Driver64=/xxx/odbc/lib/libzeodbc.so
setup
驱动安装路径,与Driver64中动态库的路径一致。
setup=/xxx/odbc/lib/libzeodbc.so
- 配置数据源文件。
在“/usr/local/etc/odbc.ini ”文件中追加以下内容。
[zenith] Driver=DRIVER_N Servername=192.168.0.1(数据库Server IP) Port=1888 (数据库侦听端口)
odbc.ini文件配置参数说明如表2所示。
表2 odbc.ini文件配置参数 参数
描述
示例
[DSN]
数据源的名称。
[zenith]
Driver
驱动名,对应odbcinst.ini中的DriverName。
Driver=DRIVER_N
Servername
服务器的IP地址。
Servername=192.168.0.1
Port
服务器的端口号。
Port=1888
说明:
当前GaussDB 100 ODBC支持两种连接方式,普通TCP的方式和SSL的方式。其中SSL方式又分为单向认证和双向认证:
- 如果SSL开关打开,但ODBC侧没有配置证书信息,ODBC会使用单向认证的方式连接数据库。
- 当odbc侧也配置了证书文件,且SSL开关打开,ODBC会使用更加安全的双向认证连接数据库。
表3 odbc.ini文件ssl相关配置参数 参数
描述
示例
sslmode
设置是否和服务器进行SSL连接协商,以及指定SSL连接的优先级。
sslmode = VERIFY_CA
取值及含义:
- disabled:只尝试非SSL连接。
- preferred:如果服务端支持SSL连接,优先选择SSL连接,否则选择非SSL连接。
- required:只尝试SSL连接。如果存在CA文件,则按设置成verify_ca的方式验证。
- verify_ca:只尝试SSL连接,并且验证服务器是否具有由可信任的证书机构签发的证书。
- verify_full:只尝试SSL连接,并且验证服务器是否具有由可信任的证书机构签发的证书,以及验证服务器主机名是否与证书中的一致。
默认值:preferred
sslca
指定为ODBC侧颁发证书的根证书文件,根证书用于验证服务器证书的有效性。
sslca = /home/xxx/cfg/ssl/ca.pem
sslcert
指定ODBC侧证书文件,包含客户端的公钥。客户端证书用以表明客户端身份的合法性,公钥将发送给对端用来对数据进行加密。
sslcert = /home/xxx/cfg/ssl/client-cert.pem
sslkey
指定ODBC侧私钥文件,用以数字签名和对公钥加密的数据进行解密。
sslkey = /home/xxx/cfg/ssl/client-key.pem
sslkeypwd
ODBC侧私钥密码密文,如果私钥加密存储,通过该参数设置密文。
sslkeypwd = /xdh0RYc41jbkzZmxg6T7LWarW3RjaRvevQu76RLCVs=
sslcrl
指定证书吊销列表文件,用于验证服务器证书是否在废弃证书列表中,如果在,则服务器证书将会被视为无效证书。
sslcrl = /home/xxx/cfg/ssl/client-crl.pem
sslcipher
SSL通讯使用的加密算法。
sslcipher = DHE-RSA-AES256-GCM-SHA384
支持的加密算法的详细信息请参见表4。
默认值:空,表示允许对端使用GaussDB 100支持的所有加密算法,最后满足条件的算法按照安全强度进行排序。
ssllocalkey
指定ODBC侧工作秘钥。
ssllocalkey = UTiYlBoTC71MvTyBvWhVDodc0VAop1GMe135ZCov8Pv4xsnlEHn9Bs/pjRo7ZNM1BXq8Z4XuyRjfaNpY/7McEQ==
sslfactorkeyfile
指定ODBC侧秘钥因子文件路径。
sslfactorkeyfile = /home/xxx/dbs/zenith_key1
SSL私钥加密等配置示例
--生成密钥因子及其相应的密钥因子文件,工作密钥;Keyfile内容填入sslfactorkeyfile配置项,WorkKey内容填入ssllocalkey配置项。 $ zencrypt -G -O /home/xxx/dbs/zenith_key1 Key: dc4hoQWGQs7/Uv3AiherFw== WorkKey: UTiYlBoTC71MvTyBvWhVDodc0VAop1GMe135ZCov8Pv4xsnlEHn9Bs/pjRo7ZNM1BXq8Z4XuyRjfaNpY/7McEQ== Keyfile: /home/xxx/dbs/zenith_key1 --使用密钥因子和工作密钥来加密SSL私钥密码;Cipher内容填入sslkeypwd配置项 $ zencrypt -e aes256 -f dc4hoQWGQs7/Uv3AiherFw== -k UTiYlBoTC71MvTyBvWhVDodc0VAop1GMe135ZCov8Pv4xsnlEHn9Bs/pjRo7ZNM1BXq8Z4XuyRjfaNpY/7McEQ== --输入SSL私钥密码 Please enter password to encrypt: ******** Please input password again: ******** Cipher: /xdh0RYc41jbkzZmxg6T7LWarW3RjaRvevQu76RLCVs=
odbc.ini示例
$ cat /usr/local/etc/odbc.ini [myzenith] Servername = 192.168.0.1 Port = 1888 sslca = /home/xxx/cfg/ssl/ca.pem sslcert = /home/xxx/cfg/ssl/client-cert.pem sslkey = /home/xxx/cfg/ssl/client-key.pem sslkeypwd = /xdh0RYc41jbkzZmxg6T7LWarW3RjaRvevQu76RLCVs= ssllocalkey = UTiYlBoTC71MvTyBvWhVDodc0VAop1GMe135ZCov8Pv4xsnlEHn9Bs/pjRo7ZNM1BXq8Z4XuyRjfaNpY/7McEQ== sslfactorkeyfile = /home/xxx/dbs/zenith_key1 sslmode = VERIFY_CA
表4 加密算法 加密强度
安全程度
加密算法描述
说明
stronger
high
DHE-RSA-AES256-GCM-SHA384
适用于RSA加密算法生成的证书
stronger
high
DHE-RSA-AES128-GCM-SHA256
stronger
high
ECDHE-ECDSA-AES256-GCM-SHA384
适用于ECDSA加密算法生成证书
stronger
high
ECDHE-ECDSA-AES128-GCM-SHA256
stronger
high
ECDHE-RSA-AES256-GCM-SHA384
适用于RSA加密算法生成的证书
stronger
high
ECDHE-RSA-AES128-GCM-SHA256
stronger
high
DHE-DSS-AES256-GCM-SHA384
适用于DSA加密算法生成的证书
stronger
high
DHE-DSS-AES128-GCM-SHA256
stronger
medium
DHE-RSA-AES256-SHA256
适用于RSA加密算法生成的证书
stronger
medium
DHE-RSA-AES128-SHA256
stronger
medium
DHE-DSS-AES256-SHA256
适用于DSA加密算法生成的证书
stronger
medium
DHE-DSS-AES128-SHA256
stronger
high
DHE-RSA-AES256-CCM
适用于RSA加密算法生成的证书
stronger
high
DHE-RSA-AES128-CCM
「喜欢文章,快来给作者赞赏墨值吧」【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。评论
- 配置ODBC驱动文件。