zoukankan      html  css  js  c++  java
  • PostgreSQL之密码文件.pgpass

    pg初始化的数据库默认认证方式为trust,该方式允许不输入密码即可登录数据库

    trust认证的pg_hba.conf配置如下:

    很明显,不安全

    新初始化了一个md5认证的数据库(也可以直接修改已有数据库配置)

    ./initdb -Upostgres -A md5 -D ../data1 -W

    md5认证的pg_hba.conf配置如下:

    启动后登录该数据库就需要输入密码了

    [postgres@mingfan bin]$ ./psql -Upostgres -dpostgres -p5433
    Password for user postgres:
    psql (13.0)
    Type "help" for help.
    
    postgres=#

    关于.pgpass

    对数据库的大多数访问(包括psql程序)都通过libpq库进行。该库包含一项功能,如果指定一个名为.pgpass的文件(或PGPASSFILE引用的文件),则可以在其中放置以用户身份连接所需的密码。

    好处​:这允许通过诸如cron之类的机制自动执行日常管理任务​。

    .pgpass文件内容格式如下​:

    hostname:port:database:username:password 

    需要注意:

    1、当密码包含冒号(:)时,必须用反斜杠( :)进行转义

    2、字符“ *”可以匹配任何字段中的任何值(密码除外)

    3、如果设置了环境变量PGPASSWORD,则不会读取〜/ .pgpass文件

    4、Windows 7 64位上带有空格的路径的示例PGPASSFILE值:

    设置PGPASSFILE = C: Program Files someapp pgpass.conf

    5、请注意,环境变量值不得使用“(双引号)

    6、关于权限:在 Unix 系统上,口令文件上的权限必须不允许所有人或组内访问,可以用chmod 0600 ~/.pgpass这样的命令实现。如果权限没有这么严格,该文件将被忽略。在Windows上,该文件被假定存储在一个安全的目录中,因此不会进行特别的权限检查。

    实例:

    vim ~/.pgpass
    #写入
    localhost:5433:postgres:postgres:123456
    #修改权限
    chmod 0600 ~/.pgpass

    检查下

    此时本地登录数据库就不需要密码输入了

    [postgres@mingfan bin]$ ./psql -Upostgres -dpostgres -p54321
    psql (13.0)
    Type "help" for help.
    
    postgres=# 
     
  • 相关阅读:
    uva 11294 Wedding
    uvalive 4452 The Ministers’ Major Mess
    uvalive 3211 Now Or Later
    uvalive 3713 Astronauts
    uvalive 4288 Cat Vs. Dog
    uvalive 3276 The Great Wall Game
    uva 1411 Ants
    uva 11383 Golden Tiger Claw
    uva 11419 SAM I AM
    uvalive 3415 Guardian Of Decency
  • 原文地址:https://www.cnblogs.com/mingfan/p/14003075.html
Copyright © 2011-2022 走看看