Vertica 集成 DataSunrise¶
Vertica 与 DataSunrise:测试版本¶
| 软件 | 版本 |
|---|---|
| 合作伙伴客户端 | DataSunrise Database Security Suite 8.1.10-3489 |
| 桌面平台 | Windows 10 Professional,使用 Chrome 和 Firefox 浏览器 |
| Vertica 客户端 | Vertica ODBC driver 12.0.0-0(Windows 10 和 Linux Redhat 7.9,使用 unixODBC) |
| Vertica 服务器 | Vertica server 12.0.0 |
| 服务器平台 | Linux Redhat 7.9 |
DataSunrise 概述¶
DataSunrise Database Security 是一个应用程序防火墙,保护关系数据库免受黑客攻击和内部威胁。DataSunrise 运行在 Windows 和 Linux 操作系统上,独立于任何应用程序运行,不会对数据库服务器造成额外负载。
DataSunrise 可以执行以下任务:
- 数据审计 (Data Auditing):将所有用户操作、SQL 查询和查询结果记录到内部数据库以供审计。结果可以导出到外部系统。
- 数据保护 (Data Protection):充当数据库防火墙。分析数据库流量,实时检测和阻止未授权查询和 SQL 注入。检测到的威胁的告警和报告可以发送给管理员处理。
- 数据脱敏 (Data Masking):通过混淆敏感数据的输出,并用随机或看起来真实的数据替换,防止敏感数据泄露。脱敏功能包括动态和静态数据脱敏,使用多种脱敏算法。
- 数据发现 (Data Discovery):扫描数据库,定位个人身份信息 (PII) 和电子受保护健康信息 (ePHI)。为包含敏感数据的列创建安全或脱敏规则。
安装 DataSunrise¶
- 首先检查 DataSunrise 文档中说明的 DataSunrise 先决条件。要找到 Admin Guide:
- 在 DataSunrise 网站 上,打开 Support 选项卡。
- 为您的平台选择 Admin Guide。
- 提供下载所需的信息。
- 点击 Download。
注意:DataSunrise 网站 Support 选项卡上的 DataSunrise admin 和 user guides 中提供了先决条件、安装、配置和使用信息。
- 在 DataSunrise 网站主页上,点击 Download 下载 DataSunrise Database Security Suite。
- 在下载过程中,提供所请求的信息,并从 Database 下拉列表中选择 Vertica。
- 按照 Admin Guide 中的说明安装 DataSunrise Database Security Suite 和许可证。您可以选择安装 30 天试用版进行评估。
注意:在测试中,我们将 DataSunrise 和 Vertica 安装在同一台 Linux 主机上,未遇到问题。但 DataSunrise 建议在生产环境中安装在不同的主机上。详情请参阅已知限制。
安装 Vertica 客户端驱动¶
DataSunrise 使用 ODBC 数据源名称 (DSN) 连接到 Vertica。要创建 DSN,下载 Vertica 客户端包并安装驱动,然后在 ODBC Driver Manager 中配置 DSN。
下载 Vertica 客户端:
- 访问 Vertica 客户端驱动页面。
- 下载与 Vertica 服务器版本兼容的 Vertica 客户端包版本。
注意:关于客户端和服务器兼容性的详细信息,请参阅 Vertica 文档中的客户端驱动和服务器版本兼容性。
安装 ODBC 驱动和创建 DSN:
按照 Vertica 文档中的说明操作: - 安装 ODBC 驱动:客户端驱动 - 创建 DSN:创建 ODBC 数据源名称
您可以选择安装完整的 Vertica 客户端包或仅安装 ODBC 驱动。
在 Vertica 文档的连接到 Vertica 部分中,您将找到所有关于连接 Vertica 的详细信息。
Linux ODBC 驱动配置的特殊注意事项: - Vertica 文档指出,使用 odbcinst.ini 的单一引用驱动路径用于多个 DSN 是可选的。DataSunrise 不使用 DSN 进行连接,因此要求 odbcinst.ini 存在并配置有驱动的名称/值对。如果 odbcinst.ini 未找到或未正确配置,DataSunrise 无法找到驱动并返回错误。 - DataSunrise 使用 ODBC 驱动连接到 Vertica,因此必须使用 vertica.ini,并且必须设置 ErrorMessagesPath 的名称/值对。如果未设置,ODBC 驱动无法找到 ODBC 错误代码的文本。 详情请参阅故障排查部分。
将 Vertica 连接到 DataSunrise¶
安装并为数据库配置 Vertica ODBC 驱动后,即可将 DataSunrise 连接到 Vertica。
- 打开 DataSunrise User Guide。转到 "DataSunrise Configurations" 章节,找到 "Managing Databases" 主题。
- 按照启动 DataSunrise Web 界面的说明操作。
- 首次进入 Web 界面时,将显示 SMTP 服务器设置表单。点击 Skip。初始设置时不需要此项,可以在后续菜单中配置。
- 展开左侧菜单中的 Configuration 选择,选择 Databases。
- 点击 Add Database。Database Connection Parameters 表单出现。表单字段是动态的,因此请确保首先选择 Database Type "Vertica" 以获取需要填写的相应字段。
以下是已完成表单的示例:

- 点击 Test Connection 确认 DataSunrise 可以连接到数据库。
- 如果连接成功,在 Test 按钮下方会显示更多字段。

注意:Proxy 字段部分中的端口号是客户端连接到代理的端口。有关此端口号配置注意事项的更多详细信息,请参阅本文档中的已知限制和 DataSunrise User Guide。
- 点击 Save 保存数据库配置文件。 状态消息通知您 DataSunrise 正在从数据库的每个模式加载对象信息。根据数据库中对象的数量,这可能需要一些时间。
- 加载过程完成后,可以按以下方式验证 DataSunrise 和 Vertica 之间的连接:
- 在 Configuration 菜单中,选择 Database Users。
- 确认您的 Vertica 用户已在目标数据库中定义。

- 您可以使用您喜欢的 SQL 客户端工具(例如 DBVisualizer)验证客户端应用程序是否可以通过 DataSunrise 代理访问 Vertica。像往常一样连接,但使用 DataSunrise 服务器的 IP 地址/主机名而不是 Vertica 服务器的。
- 通过代理连接后,您可以查看 Monitoring 菜单中的 System Events,查看捕获的登录活动。

有关 DataSunrise 与 Vertica 的进一步配置和测试,请参阅 DataSunrise User Guide。
故障排查¶
-
如果缺少
odbcinst.ini文件,或者Driver64/driver_path的名称/值对不存在或不正确,则在测试连接或首次尝试连接时会出现以下错误:Error code 0 [unixODBC][Driver Manager]Can't open lib 'Vertica' : file not found. Used connection string 'Driver=Vertica;Server=10.20.71.180;Port=5433;Database=VMart;Uid=dbadmin;Pwd=XXXXXX;'注意:DataSunrise 使用标准 ODBC 方法
SQLGetInstalledDrivers函数枚举所有已安装的驱动。从函数返回的已安装驱动列表中,DataSunrise 使用第一个名称包含子字符串 "Vertica" 的驱动。如果在odbcinst.ini中有多个 Vertica 驱动,请确保希望 DataSunrise 使用的驱动位于列表顶部。 -
如果
VERTICAINI环境变量未设置为有效的可读vertica.ini文件位置,或者ErrorMessagesPath的名称/值对未设置或不正确,则在发生错误时可能看到以下信息:此消息表示 Vertica 驱动无法找到 Vertica 错误消息文件来查找错误码。SELECT EXCEPTION vmart.vert_datatype_v1_0_4.varchar_table err [[DSI] The error message VPrepareError could not be found in the en-US locale. Check that /en-US/VerticaMessages.xml exists. errCode = -1], Query : SELECT "varchar_max_column","keycolumn","varchar_column" FROM "vert_datatype_v1_0_4"."varchar_table" LIMIT 100
以下是使用 /etc 作为 ini 文件默认位置的 ODBC 设置示例:
[dbadmin@vertica-node ~]$ env | grep INI
VERTICAINI=/etc/vertica.ini
ODBCSYSINI=/etc
ODBCINI=odbc.ini
ODBCINSTINI=odbcinst.ini
[dbadmin@vertica-node ~]$ cat /etc/odbc.ini
[ODBC Data Sources]
VMart="Vertica on xx.xx.xx.xxx"
[VMart]
Description=Vmart Database
Driver=Vertica
Database=VMart
Servername=verticahostnameorip
UID=dbadmin
PWD=
Port=5433
ConnSettings=
AutoCommit=0
#SSLKeyFile=/home/dbadmin/client.key
#SSLCertFile=/home/dbadmin/client.crt
Locale=en_US@collation=binary
[dbadmin@vertica-node ~]$ cat /etc/odbcinst.ini
# Example driver definitions
[Vertica]
Description=Vertica ODBC Driver
Driver=/opt/vertica/lib64/libverticaodbc.so
[ODBC]
Threading = 1
[dbadmin@vertica-node ~]$ cat /etc/vertica.ini
[Driver]
DriverManagerEncoding=UTF-16
ODBCInstLib=/usr/lib64/libodbcinst.so
ErrorMessagesPath=opt/vertica/en-US
LogLevel=4
LogPath=/tmp
已知限制¶
- 端口冲突:Vertica 硬编码使用端口 5433 作为客户端通信端口。为新的 Vertica 客户端创建代理时,通常会分配新代理到端口 5433,现有客户端可以轻松通过 DSN 重定向。如果 DataSunrise 服务器安装在 Vertica 节点上,则代理端口不能为 5433,因为它已被 Vertica 服务器使用。如果将代理端口设置为 5433 以外的端口,则必须编辑所有客户端的连接字符串以使用该端口号。因此,建议将 Vertica 和 DataSunrise 安装在不同主机上。
- 备份服务器节点故障转移:DataSunrise 目前不支持备份服务器节点故障转移。如果配置文件中的 Vertica 主机宕机,代理将无法连接到数据库。您必须手动编辑数据库配置文件,将主机 IP 地址修改为另一个正在运行的 Vertica 主机,并在故障 Vertica 主机修复后切换回来。
- 基于应用程序的规则过滤:DataSunrise 可以使用规则过滤器根据应用程序指定操作。此功能在 Vertica 上不支持,因为 Vertica 系统表中不跟踪客户端应用程序名称。
- 原生连接负载均衡:DataSunrise 目前不支持 Vertica 的原生连接负载均衡。当前,DataSunrise 会转换每个客户端重定向中的主机地址,以防止客户端被重定向到备用主机而绕过代理。
更多信息¶
| 关于... | 参见... |
|---|---|
| DataSunrise 网站 | https://www.datasunrise.com/ |
| Vertica Community Edition | https://www.vertica.com/register/ |
| Vertica User Community | https://www.vertica.com/big-data-analytics-community-content/ |
| Vertica 文档 | http://vertica.com/docs/latest/HTML/index.htm |
原文来源:https://www.vertica.com/kb/DataSunriseCG/Content/Partner/DataSunriseCG.htm