如何避免在yaml中为gpload硬编码登录凭据

时间:2016-08-24 14:50:29

标签: postgresql security yaml greenplum

我有一个问题我无法解决。我正在使用YAML将CSV加载到gpdb表。我想避免硬编码数据库登录详细信息(主机,ID,密码)。 YAML不支持包含或导入选项。如何将存储在第二个文件中的凭据连接或调用到用于执行的YAML脚本中的正确位置?

--- 
VERSION:
DATABASE: dbname        # <- these should be dynamic
USER: user              # <-
PASSWORD: itsasecret    # <-
HOST: server_address    # <-
PORT: 1234              # <-
GPLOAD:
  input...
  output...

1 个答案:

答案 0 :(得分:1)

您可以使用命令行参数调用gpload来指定主机和用户,并将它们从YAML文件本身中取出:

gpload -f yourfile.yml -h database_server_name -U user_login_name

您可以将密码设置为:

带有密码的

$PGPASSWORD环境变量
$PGPASSFILE环境变量指向具有该用户密码的文件 将登录信息放在.pgpass

如果您不希望将密码存储在某个文件中,可以在命令行中添加-W以强制提示密码。