2012-08-01 91 views
2

我通过ODBC与Ubuntu服务器上的Stata连接到Teradata数据库(12.04 LTS)。一切工作正常,除了我的TD用户名和密码存储在.odbc.ini文件,这似乎是一个可怕的想法。另一种方法是将它们输入Stata,这看起来更加糟糕,而且很尴尬。有没有办法更安全地做到这一点?我使用SSH登录到服务器的登录信息与TD数据库同步。似乎应该有可能传递这些信息。如何避免在Linux上的.odbc.ini文件中存储用户名/密码?

回答

0

如果你想围绕你的odbc.ini文件或者你的Ubuntu服务器上其他可能包含用户凭证的文件建立更好的安全性,我会强烈建议使用Access Control Lists(ACL)。除了典型的Owner :: Group :: World权限之外,您还可以指定特定用户的权限,以确定是否允许或拒绝给定文件的显式权限。

有关Teradata安全性的其他选项包括如果您的环境支持使用LDAP身份验证。在Teradata上配置LDAP超出了SO的范围,并且在很多情况下是与Teradata的信息安全CoE相关的专业服务。

3

在ODBC术语中,您不需要在任何ODBC ini文件中存储用户名/密码。 ODBC SQLConnectSQLDriverConnect都支持在被调用时传入用户名/密码。

SQLDriverConnect在您的InConnectionString中需要一些类似于“DSN = YourDataSourceName; UID = username; PWD = password”的内容。

您可以更进一步,将整个DSN作为命令行参数传递,这意味着您不需要ini文件中的ODBC数据源。我确信其中一位论坛读者可以从Teradata为您发布样本。

至于从你的SSH登录传入用户名和密码。您的应用程序需要捕获并将其传递给ODBC。

相关问题