暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB T Linux下配置数据源

墨天轮 2019-10-12
1192

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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论