如何使用编程代码或psql或任何更改pg_hba中的方法(md5 / trust)?

时间:2014-05-29 08:58:13

标签: vb.net postgresql

我在Windows上运行PostgreSQL。对于某些机器(超过50个客户),我在md5的PostgreSQL身份验证选项中将auth方法设置为pg_hba.conf。现在我想通过trust或通过SQL see this将其更改为vb.net

1 个答案:

答案 0 :(得分:0)

PostgreSQL在撰写本文时(9.4)没有提供任何SQL级功能或实用程序命令行工具来以编程方式修改pg_hba.conf

如果所有计算机上的所有pg_hba.conf文件都相同,那么执行所需操作的最简单方法是获取已修改文件的副本,并将所有计算机上的旧副本替换为已修改的文件。这可以使用您使用的任何远程自动化和管理工具,或执行copy new_hba.conf %PROGRAMFILES%\PostgreSQL\9.2\data\pg_hba.conf的简单脚本来完成。相同的脚本可以通过SELECT pg_reload_conf()pg_ctl reload重新加载PostgreSQL的配置。

如果文件不完全相同,并且您必须保留对每个文件所做的任何现有本地修改,那么它就会有点棘手。

您需要将文件作为文本文件打开,读取每一行,然后按空格(运行标签/空格)将其拆分为字段。

对于每一行,将原始行写回文件,除非它是您要修改的行。对于该行,请改为替换。如果在处理文件时未找到要替换的行,请在关闭文件之前在末尾添加新行。

在unix操作系统上,现有有用的实用程序,例如sedawkperl

在Windows上,你可以用一些相当简单的VB.net编写自己的等价物,因为这是一个简单的任务,基本上是任何支持文件I / O的编程语言。这可能是你最好的选择。例如,使用VB.net搜索如何修改基于文本的配置文件的示例。