PostgreSQL之psql 访问数据库的密码验证

作者:瀚高PG实验室 (Highgo PG Lab)- 波罗
psql 访问数据库涉及5个要素:
-U 用户名
-W 交互方式输入密码
-h 主机名
-p 端口号
-d 数据库名

一般客户端访问需要指定以上5个要素,类似于Oracle客户端 tnsnames.ora文件中的相关设定。

服务端通过psql访问数据库如果不指定,通常会查找用户环境变量的相关设置(譬如.bash_profile文件或创建的.mylocalenv文件)。

当然验证过程要受到pg_hba.conf文件的限制;要不要输入密码关联 method字段值md5或trust(可信的不需要密码验证)。

另外,需要说明的一点是:-W 选项的含义是必须以交互的方式输入密码,而不是在选项后边直接输入明文密码,区别于Oracle 或DB2的输入密码明文,这一点应该是出于安全性的考虑。

示例:

[postgres@hgdb01 data]$ vi pg_hba.conf 
# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only
local   all             all                                    md5
host    all             postgres        192.168.137.0/24        md5
host    all             all             ::1/128                 md5
[postgres@hgdb01 data]$ psql -U postgres -W -h localhost -d testdb -p 1921
Password for user postgres:   #此处必须是交互式输入密码
psql (9.5.7)
Type "help" for help.

testdb=# \q

这里的-u -p -d选项都可以省略,因为环境变量有所设置!

[postgres@hgdb01 data]$ cat  ~/.bash_profile
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
#add
export PGPORT=1921
export PGDATA=/pgdata/data
export LANG=en_US.utf8
export PGHOME=/usr/local/pgsql957
export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
export DATE=`date +"%Y%m%d%H%M"`
export PATH=$PGHOME/bin:$PATH:.
export MANPATH=$PGHOME/share/man:$MANPATH
export PGUSER=postgres
export PGHOST=$PGDATA
export PGDATABASE=testdb
alias rm='rm -i'
alias ll='ls -lh'
[postgres@hgdb01 data]$ psql -U postgres
Password for user postgres:   #此处必须是交互式输入密码
psql (9.5.7)
Type "help" for help.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值