postgresql – 使用psql命令运行批处理文件,而不需要密码
我试图使用批处理脚本来执行这个psql命令:
psql --host=localhost --dbname=<dbname> --port=<Port Number> --username=<dbuser> --file=C:PSQL_Script.txt --output=C:PSQL_Output.txt 问题是每当我执行批处理脚本时都要求密码。如何通过批处理文件进行密码参数?
关于无密码登录的问题不断弹出。继续阅读,最好的选择是最后的。但是让我们首先澄清几件事情。
只能静音密码请求 如果您的问题只是密码提示,您可以将其静音。我引用the manual here:
你可能不需要密码 通常这是不必要的。默认数据库超级用户postgres通常对应于同名的系统用户。如果在pg_hba.conf文件中设置了authentication method local all postgres peer 通常也是: local all all peer 这意味着,每个本地用户都可以登录到具有相同名称的数据库用户的所有数据库,而无需密码。
大胆强调我的
本地连接的简单解决方案 从psql调用中省略参数-h。再次报价the manual on
视窗 …没有Unix域套接字,从本地开始的pg_hba.conf行不适用于Windows。在Windows上,默认情况下通过localhost连接,这使我们重新开始。 如果您的安全要求较为松散,则可以通过localhost信任所有连接: host all all 127.0.0.1/32 trust 我只会用远程连接断开调试。对于更多的安全性,您可以在Windows上使用SSPI authentication。将此行添加到pg_hba.conf中用于“本地”连接: host all all 127.0.0.1/32 sspi 如果您确实需要密码 您可以设置一个环境变量,但这是不鼓励的,特别是对于Windows。 The manual:
The manual on
$ psql "user=myuser password=secret_pw host=localhost port=5432 sslmode=require" 还是使用URI,而不是使用数据库名称: $ psql postgresql://myuser:secret_pw@localhost:5432/mydb?sslmode=require 密码文件 但是通常最好设置一个
确切的路径取决于系统。此文件可以为角色和端口(DB集群)的多个组合的密码: localhost:5432:*:myadmin:myadminPasswd localhost:5434:*:myadmin:myadminPasswd localhost:5437:*:myadmin:myadminPasswd ... 在Windows机器上查找文件: C:Documents and SettingsMy_Windows_User_NameApplication Datapostgresql (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |