加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL 自动输入密码

发布时间:2020-12-13 18:17:16 所属栏目:百科 来源:网络整理
导读:《PostgreSQL 自动输入密码》要点: 本文介绍了PostgreSQL 自动输入密码,希望对您有用。如果有疑问,可以联系我们。 在 Shell 命令行中,使用 postgresql-client 连接 PostgreSQL 数据库时,每次都要输入暗码.如果要写 Shell Script,做一些类似于备份的自动化

《PostgreSQL 自动输入密码》要点:
本文介绍了PostgreSQL 自动输入密码,希望对您有用。如果有疑问,可以联系我们。

在 Shell 命令行中,使用 postgresql-client 连接 PostgreSQL 数据库时,每次都要输入暗码.如果要写 Shell Script,做一些类似于备份的自动化管理工作,每次都还要手动输入暗码是一件让人很不爽的事情,也没有实现真正意义上的自动化.

何如在连接 PostgreSQL 数据库时,不用手动输入暗码,官方利用暗码文件(Password File)提供了一种解决方案:

Unix/Linux 在用户家目录创建一个 .pgpass 暗藏文件或者是创建一个环境变量 PGPASSFILE 引用一个含有密码信息的文件(文件内容同 .pgpass 文件,此处文件名可随意,隐不暗藏都行),Windows 对应的是 %APPDATA%postgresqlpgpass.conf 文件( %APPDATA% 是用户配置里面的 Application Data 子目录).

该文件记录着连接数据库需要的所有信息,按下面数据格式,每行一条记录信息:

hostname:port:database:username:password

该文件中可以有注释内容,注释符号是 # .

前四个字段可以是确定的字面值,也可以使用通配符 * 匹配所有.

连接数据库的时候,系统自动从前到后遍历该文件,使用最先匹配到的记录,因此,当你在文件中使用了通配符 * 的时候,应该优先把最具体的信息放在文件的最前面.

如果记录信息中包含 : 或 这两个符号,需要对其进行转义,就是在字符前面加转义符号 .

在 Unix/Linux 系统中 .pgpass 文件权限只能对用户自己开放,不能对用户组和其他人开放,就是说 .pgpass 文件对用户组和其他人是"不可读,不可写,不可执行"的,通常会赋予 .pgpass 文件权限 600,命令如下:

如果任何一个权限对用户组或其他人开放了,该文件就会被忽略.

利用环境变量 PGPASSFILE 引用的文件权限也要满足这个要求,否则同样会被忽略.

在 Windows 中,会假设该文件存放在一个平安的目录中,所有没有对其权限进行特别的检查.

至此,数据库对应的 .pgpass 文件设置完成,以后再连接数据库就不需要手动输入暗码了,Shell Script 也能够实现真正意义上的自动化管理.

psql -h 10.150.10.150 -p 5432 -U postgres -d dbname  -- 到.pgpass文件中寻找匹配信息,如果没有,依然需要手动输入暗码

欢迎参与《PostgreSQL 自动输入密码》讨论,分享您的想法,编程之家PHP学院为您提供专业教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读