关于.pgpass
对数据库的大多数访问(包括psql程序)都通过libpq库进行。该库包含一项功能,如果指定一个名为.pgpass的文件(或PGPASSFILE引用的文件),则可以在其中放置以用户身份连接所需的密码。
好处:这允许通过诸如cron之类的机制自动执行日常管理任务。
.pgpass文件内容格式如下:
hostname:port:database:username:password
需要注意:
- 当密码包含冒号(:)时,必须用反斜杠( :)进行转义
- 字符“ *”可以匹配任何字段中的任何值(密码除外)
- 如果设置了环境变量PGPASSWORD,则不会读取〜/ .pgpass文件
- Windows 7 64位上带有空格的路径的示例PGPASSFILE值:
- 设置PGPASSFILE = C: Program Files someapp pgpass.conf
- 请注意,环境变量值不得使用“(双引号)
- 关于权限:在 Unix 系统上,口令文件上的权限必须不允许所有人或组内访问,可以用chmod 0600 ~/.pgpass这样的命令实现。如果权限没有这么严格,该文件将被忽略。在Windows上,该文件被假定存储在一个安全的目录中,因此不会进行特别的权限检查。
实例:
vim ~/.pgpass #写入 localhost:5433:postgres:postgres:123456 #修改权限 chmod 0600 ~/.pgpass
检查下
infauser@XXXX:/data/99postgresql9.6> cat ~/.pgpass 127.0.0.1:5555:postgres:postgres:password infauser@XXXX:/data/99postgresql9.6> infa@XXXX:/data/99postgresql9.6> ls -l ~/.pgpass -rwx------ 1 infauser users 43 Nov 4 16:26 /home/infauser/.pgpass
此时本地登录数据库就不需要密码输入了
infa@XXXX:/data/99postgresql9.6> ./bin/psql -h 127.0.0.1 -U postgres -p 5555 Password for user postgres: psql.bin (9.6.5) Type "help" for help. postgres=
转载请注明:不灭的焱 » PostgreSQL之密码文件 /root/.pgpass