如何避免在Linux上将userid/password存储在.odbc.ini文件中



我正在Ubuntu服务器(12.04 LTS)上使用Stata通过ODBC连接到Teradata数据库。一切都很好,只是我的TD用户ID和密码存储在.odbc.ini文件中,这似乎是一个糟糕的想法。另一种选择是将它们输入Stata,这似乎更糟,也很尴尬。有没有更安全的方法?我用来ssh到服务器的登录信息与TD数据库同步。看来应该有可能传递这些信息。

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

SQLDriverConnect需要InConnectionString中的某些内容,如"DSN=YourDataSourceName;UID=username;PWD=password"。

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

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

如果你想围绕你的odbc.ini文件或Ubuntu服务器上可能包含用户凭据的其他文件建立更精细的安全性,我强烈建议使用访问控制列表(ACL)。除了典型的所有者::组::世界权限之外,您还可以为特定用户指定权限,决定是否允许或拒绝他们对给定文件的显式权限。

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

最新更新