我通过ODBC与Ubuntu服务器上的Stata(12.04 LTS)连接到Teradata数据库。一切正常,除了我的TD用户ID和密码存储在.odbc.ini文件中,这似乎是一个糟糕的主意。另一种方法是将它们输入Stata,这看起来更糟糕而且很尴尬。有没有办法更安全地做到这一点?我用来ssh到服务器的登录信息与TD数据库同步。似乎应该可以传递这些信息。
答案 0 :(得分:3)
在ODBC术语中,您不需要在任何ODBC ini文件中存储用户名/密码。 ODBC SQLConnect和SQLDriverConnect都支持在调用时传入用户名/密码。
SQLDriverConnect需要InConnectionString中的某些内容,例如“DSN = YourDataSourceName; UID = username; PWD = password”。
您可以更进一步,将整个DSN作为命令行参数传递,这意味着您不需要ini文件中的ODBC数据源。我相信其中一位论坛读者可以从Teradata为您发布样本。
从SSH登录中传入用户名和密码。您的应用程序需要捕获它并将其传递给ODBC。
答案 1 :(得分:0)
如果您想在odbc.ini文件或Ubuntu服务器上可能包含用户凭据的其他文件周围建立更精细的安全性,我强烈建议使用Access Control Lists(ACL)。除了典型的Owner :: Group :: World权限之外,您还可以为特定用户指定是否允许或拒绝给定文件的显式权限的权限。
有关Teradata安全性的其他选项包括在您的环境支持时使用LDAP身份验证。在Teradata上配置LDAP超出了SO的范围,并且在许多情况下是Teradata信息安全CoE的可计费专业服务。