重庆思庄Oracle、Redhat认证学习论坛

标题: psql 访问数据库的密码验证 [打印本页]

作者: mahan    时间: 2024-3-31 17:10
标题: psql 访问数据库的密码验证
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.






欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2