Windows下配置数据源
Windows操作系统自带ODBC数据源管理器,无需用户手动安装管理器便可直接进行配置。
操作步骤
- 替换客户端GaussDB 200驱动程序
将GaussDB-Kernel-VxxxRxxxCxx-Windows-Odbc.tar.gz解压后,根据需要,点击psqlodbc.msi(32位)或者psqlodbc_x64.msi(64 位)进行驱动安装。
- 打开驱动管理器
在配置数据源时,请使用对应的驱动管理器(假设操作系统安装盘符为C:盘,如果是其他盘符,请对路径做相应修改):
- 64位操作系统上进行32位程序开发,安装32位驱动程序后,使用32位的驱动管理器:C:\Windows\SysWOW64\odbcad32.exe
请勿直接使用控制面板->管理工具->数据源(ODBC)。
说明:WoW64的全称是"Windows 32-bit on Windows 64-bit",C:\Windows\SysWOW64\存放的是64位系统上的32位运行环境。而C:\Windows\System32\存放的是与操作系统一致的运行环境,具体的技术信息请查阅Windows的相关技术文档。
- 64位操作系统上进行64位程序开发,安装64位驱动程序后,使用64位的驱动管理器:C:\Windows\System32\odbcad32.exe
请勿直接使用控制面板->管理工具->数据源(ODBC)。
- 32位操作系统请使用:C:\Windows\System32\odbcad32.exe
或者点击计算机->控制面板->管理工具->数据源(ODBC)打开驱动管理器。
- 64位操作系统上进行32位程序开发,安装32位驱动程序后,使用32位的驱动管理器:C:\Windows\SysWOW64\odbcad32.exe
- 配置数据源
在打开的驱动管理器上,选择用户DSN->添加->PostgreSQL Unicode(如果是64位驱动,将会有64位标识),然后进行配置:
此界面上配置的用户名及密码信息,将会被记录在Windows注册表中,再次连接数据库时就不再需要输入认证信息。但是出于安全考虑,建议在单击"Save"按钮保存配置信息前,清空相关敏感信息;在使用ODBC的连接API时,再传入所需的用户名、密码信息。
- SSL模式
如果需要使用SSL证书连接,那么请将GaussDB 200安装包中的SSLCERT的证书包解压,双击"sslcert_env.bat"文件,即可完成证书的默认位置的部署。
该sslcert_env.bat为了保证证书环境的纯净,在%APPDATA%\postgresql目录存在时,会提示是否需要移除相关目录。如果有需要,请备份该目录中的文件。
或者手动将client.crt、client.key、client.key.cipher、client.key.rand文件放至%APPDATA%\postgresql(该目录需手动建立)目录下,并且将文件名中的client改为postgres,例如client.key修改为postgres.key;将cacert.pem文件放至%APPDATA%\postgresql目录,并更名为root.crt。
同时将步骤2中的设置窗口的“SSL Mode”选项调整至“verify-ca”。
表1 sslmode的可选项及其描述 sslmode
是否会启用SSL加密
描述
disable
否
不使用SSL安全连接。
allow
可能
如果数据库服务器要求使用,则可以使用SSL安全加密连接,但不验证数据库服务器的真实性。
prefer
可能
如果数据库支持,那么首选使用SSL安全加密连接,但不验证数据库服务器的真实性。
require
是
必须使用SSL安全连接,但是只做了数据加密,而并不验证数据库服务器的真实性。
verify-ca
是
必须使用SSL安全连接,并且验证数据库是否具有可信证书机器签发的证书。
verify-full
是
必须使用SSL安全连接,在verify-ca的验证范围之外,同时验证数据库所在主机的主机名是否与证书内容一致。
说明:此模式不支持产品默认证书,生成证书请参考章节:证书生成。GaussDB 200
- 配置GaussDB 200服务器要接受远程服务,需要在一台CN数据目录下,将postgresql.conf文件中listen_addresses中添加对外提供服务的网卡IP或者主机名(英文逗号分隔)。listen_addresses也可以配置为“*”或“0.0.0.0”,此配置下将监听所有网卡,但存在安全风险,不推荐用户使用,推荐用户按照需要配置IP或者主机名,打开监听。
gs_guc set -Z coordinator -D ${BIGDATA_DATA_HOME}/mppdb/data1/coordinator -c " 'listen_addresses = localhost,192.168.0.100,10.11.12.13'"
10.11.12.13为新添加对外提供服务网卡的IP地址。
相同目录下,在文件“pg_hba.conf”中追加认证信息。
gs_guc reload -Z coordinator -N all -I all -h "host all all 10.11.12.13/32 sha256"
说明:- -Z coordinator表示示例类型为coordinator。
- -N all表示集群中的所有主机。
- -I all表示主机中的所有实例。
- -h表示指定需要在“pg_hba.conf”增加的语句。
- 第一个all表示允许客户端连接到任意的数据库。
- 第二个all表示连接数据库的用户。
- 10.11.12.13/32表示只允许IP地址为10.11.12.13的主机连接。在使用过程中,请根据用户的网络进行配置修改。
- sha256表示连接时omm用户的密码使用sha256算法加密。
- 执行如下命令重启集群。
gs_om -t stop gs_om -t start
测试数据源配置
点击Test进行测试。
- 如果显示如下,则表明配置正确,连接成功。
- 若显示ERROR信息,则表明配置错误。请检查上述配置是否正确。
常见问题处理
- Server common name "xxxx" does not match host name "xxxxx"
此问题的原因是使用了SSL加密的“verify-full”选项,这时驱动程序会验证证书中的主机名与实际部署数据库的主机名是否一致。碰到此问题可以使用“verify-ca”选项,不再校验主机名;或者重新生成一套与数据库所在主机名相同的CA证书。
- connect to server failed: no such file or directory
此问题可能的原因:
- 配置了错误的/不可达的数据库地址,或者端口
请检查数据源配置中的Servername及Port配置项。
- 服务器监听不正确
如果确认Servername及Port配置正确,请根据“操作步骤”中数据库服务器的相关配置,确保数据库监听了合适的网卡及端口。
- 防火墙及网闸设备
请确认防火墙设置,将数据库的通信端口添加到可信端口中。
如果有网闸设备,请确认一下相关的设置。
- 配置了错误的/不可达的数据库地址,或者端口
- 在指定的DSN中,驱动程序和应用程序之间的体系结构不匹配
此问题可能的原因:在64位程序中使用了32位驱动,或者相反。
C:\Windows\SysWOW64\odbcad32.exe:这是32位ODBC驱动管理器。
C:\Windows\System32\odbcad32.exe:这是64位ODBC驱动管理器。
- The password-stored method is not supported.
此问题可能原因:
数据源中未配置sslmode配置项,请调整此项至allow或以上级别,允许SSL连接,此选项的更多说明,请见表1。
- authentication method 10 not supported.
使用开源客户端碰到此问题,可能原因:
数据库中存储的口令校验只存储了SHA256格式哈希,而开源客户端只识别MD5校验,双方校验方法不匹配报错。
说明:- 数据库并不存储用户口令,只存储用户口令的哈希码。
- 早期版本(V100R002C80SPC300之前的版本)的数据库只存储了SHA256格式的哈希,并未存储MD5的哈希,所以无法使用MD5做用户口令校验。
- 新版本(V100R002C80SPC300及之后版本)的数据库当用户更新用户口令或者新建用户时,会同时存储两种格式的哈希码,这时将兼容开源的认证协议。
- 但是当老版本升级到新版本时,由于哈希的不可逆性,所以数据库无法还原用户口令,进而生成新格式的哈希,所以仍然只保留了SHA256格式的哈希,导致仍然无法使用MD5做口令认证。
要解决该问题,可以更新用户口令(参见ALTER USER);或者新建一个用户(参见CREATE USER),赋于同等权限,使用新用户连接数据库。
- unsupported frontend protocol 3.51: server supports 1.0 to 3.0
目标数据库版本过低,或者目标数据库为开源数据库。请使用对应版本的数据库驱动连接目标数据库。
- FATAL: GSS authentication method is not allowed because XXXX user password is not disabled.
目标CN的pg_hba.conf里配置了当前客户端IP使用"gss"方式来做认证,该认证算法不支持用作客户端的身份认证,请修改到"sha256"后再试。配置方法见5。
查看更多:华为GaussDB 200 基于ODBC开发「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」关注作者【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。评论