如何在Teradata MLoad脚本中隐藏登录密码
我编写了一个多加载脚本来加载TeraData数据库中的数据,脚本中的命令如下:如何在Teradata MLoad脚本中隐藏登录密码,teradata,mload,Teradata,Mload,我编写了一个多加载脚本来加载TeraData数据库中的数据,脚本中的命令如下: .LOGTABLE Employee_log; .LOGON 192.168.1.1/dbc,dbc; .BEGIN MLOAD TABLES Employee_Stg; .LAYOUT Employee; .FIELD in_EmployeeNo * VARCHAR(10); .FIELD in_FirstName * VARCHAR(30); .... 但密码在脚本中清晰可见。是否有一个选项来
.LOGTABLE Employee_log;
.LOGON 192.168.1.1/dbc,dbc;
.BEGIN MLOAD TABLES Employee_Stg;
.LAYOUT Employee;
.FIELD in_EmployeeNo * VARCHAR(10);
.FIELD in_FirstName * VARCHAR(30); ....
但密码在脚本中清晰可见。是否有一个选项来保护密码或任何其他登录方式/命令,然后运行脚本。您可以创建一个登录文件,并使用以下命令在MLOAD脚本中运行它
。运行文件logonfile.txt
在登录文件中,您可以提供脚本
中使用的语句。logon 192.168.1.1/dbc,dbc代码>限制对logonfile.txt的访问,尽管只有用户可以读取它
chmod go-rwx logonfile.txt
或者用你的钱包
.LOGON 192.168.1.1/dbc,$tdwallet(dbc)
tdwallet将条目安全地保存在远处,只能通过登录命令进行访问。
没有函数可以获取明文中的条目。我相信是用于此目的的,尽管我从未使用过它。但密码仍然存储在文本文件中。如果您在prod系统中执行此文件,则很有可能发生安全漏洞。所以我问有没有其他方法可以直接执行logon命令,然后执行这个脚本。您可以限制对存储登录文件的目录的访问。。这就是我们在生产系统中的工作方式。您可以将tdwallet字符串放入您的登录文件中。因此,即使用户有权访问登录文件,他也不能在本地计算机上使用它。我的加载文件是由Java程序生成的。我还需要使用相同的/diff Java程序将密码放入tdwallet。但当我尝试使用Java在tdwallet中添加项目时,它没有运行。您对此有什么解决方案吗?通过命令行tdwallet add
向tdwallet添加条目(密码),然后请求终端输入。不能将管道或参数用于密码输入。唯一的选择是expect
(我不知道有什么java等价物)。