使用SSL / TLS上的证书身份验证将Tableau Desktop连接到PostgreSQL DB

时间:2019-08-30 10:28:29

标签: postgresql odbc tableau

我使用证书身份验证(而不是密码)连接到我的PostgreSQL数据库(在AWS EC2实例上运行)。我将用于连接到我的一个数据库的psql命令的示例是:

    ID1    ID2    Count    Code   
0   abc    def      7        B
1   fizz   buzz     5        A
2   fizz1  buzz2    9        C
3   foo    bar      6        A
4   foo    bar      6        A

我希望能够将Tableau Desktop连接到我的一个数据库。标准的PostgreSQL连接器不允许我指定要使用的SSL证书(但是它确实具有“需要SSL”复选框-我认为这是用于加密而非身份验证)。

因此,我尝试使用ODBC连接器。我输入以下内容:

psql "host=<AWS EC2 instance> user=<db user> sslcert=<path to .crt> sslkey=<path to .key> sslrootcert=<path to .crt> sslmode=require dbname=<db name>"

通过反复试验,我认为String Extras需要使用分号作为分隔符,但我仍然无法连接。我收到错误消息:

Connect Using
Driver: PostgreSQL Unicode

Connection Attributes
Server: <AWS EC2 instance>
Port: 5432
Database: <db name>
Username: <db user>
String Extras: sslcert=<path to .crt>; sslkey=<path to .key>; sslrootcert=<path to .crt>; sslmode=require

我非常感谢听到使用证书身份验证将Tableau Desktop连接到PostgreSQL的任何人的消息,并能告诉我我做错了什么。干杯!

1 个答案:

答案 0 :(得分:1)

我设法自己解决了这个问题,以防万一某个人可能隐约地有兴趣,我将介绍以下重要功能:

1。创建了DSN(数据存储名称)

  • 相对于不断在对话框中重新输入详细信息,这使测试变得容易得多。
  • 我不是手动创建的,而是使用了这个:http://www.odbcmanager.net/
  • 在Mac OS上,我必须从终端上以sudo的身份运行它,否则它不会创建任何内容。
  • 我创建了一个用户DSN,其在我的Mac上具有存储在/Users/<user name>/.odbc.ini
  • 中的详细信息
  • 它拾取了我先前安装的PostgreSQL Unicode驱动程序。在Mac OS上,您可能需要执行brew install brew install psqlodbc和/或brew install unixodbc
  • 大多数配置是通过添加键/值对来指定的,例如DBNAME <db name>
  • 设置SSLMODE verify-ca(从require更改为特定行为-如果提供了SSL证书,则psql假定verify-ca / verify-full)
  • 使用密钥Pqopt(值sslcert=<path to .crt> sslkey=<path to .key> sslrootcert=<path to .crt>)设置证书路径。必须为小写字母,且条目之间只能有空格!

这是它添加到我的用户的odbc.ini文件中的内容:

[<DSN name>]
Driver      = <path to driver, this was mine /usr/local/lib/psqlodbcw.so>
Description = <description>
SSLMODE     = verify-ca
HOST        = <host>
DBNAME      = <database>
PORT        = 5432
UID         = <db user>
Pqopt       = sslcert=<path to .crt> sslkey=<path to .key> sslrootcert=<path to .crt>

2。 Tableau Desktop连接

  • 选择其他数据库(ODBC)连接器。
  • 选择之前创建的DSN(应自动将其选中),它将自动填充主机,端口,数据库和用户字段,然后单击“登录”。
  • 登录后的行为与专用PostgreSQL连接器稍有不同。最初,表格未出现在左侧。但是它们是可访问的-通过单击“包含”单选按钮并使用空白名称搜索,可以全部显示它们。

希望这会有所帮助。让我知道您是否有任何疑问。