如何在 pgpass.conf 中为 Windows Server 2008 上的管理员帐户设置 postgresql 密码?

如何在 pgpass.conf 中为 Windows Server 2008 上的管理员帐户设置 postgresql 密码?

我有一个 pgpass.conf 文件,它对我的​​默认用户来说运行良好。它位于C:/Users/myuser/AppData/Roaming/postgresql/pgpass.conf。它的内容如下;

localhost:5432:*:postgres:password1

我有一个在管理员帐户下运行的进程。当我whoami在此进程下运行时,我得到了nt authority/system。我希望能够从此进程访问数据库,但它卡住了,因为它需要密码。我尝试将上面的 pgpass.conf 放入C:/Users/Administrator/AppData/postgresql/pgpass.confC:/Users/Administrator/AppData/Roaming/postgresql/pgpass.conf但它不起作用。这是该文件的正确位置吗?我甚至可以以管理员身份执行此操作吗?不幸的是,我无法更改此进程在其下运行的用户。

答案1

查看echo %APPDATA%使用此帐户登录时的输出。

另外,您可以将PGPASSFILE环境变量指向文件的位置(无论它在哪里),甚至可以使用PGPASSWORD密码本身设置环境变量以完全避免该文件。

环境变量密码文件文档中的部分内容提供了详细信息。

答案2

如果有人要使用 PowerShell,则使用:$env:APPDATA。这将发现 Windows Server 2016 中用于 MS SQL Server 2017 代理作业的 AppData 文件夹,其中包含 PowerShell 子系统(类型),如下所示:需要C:\Users\SQLSERVERAGENT\AppData\Roaming在其中创建文件夹并从用户位置复制文件。\postgresqlpgpass.conf

相关内容