教学文章
Technology Exchange
热门课程
400电话

免费咨询热线
400-090-9964

教学文章

PostgreSQL基础教程:psql 访问数据库的密码验证

时间:2020-06-03 来源:

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.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.

版权所有@北京神脑资讯技术有限公司(CUUG,中国UNIX用户协会) Copyright ALL Rights Reserved 京ICP备11008061号-1

CUUG旗下网站:www.cuug.com.cn www.cuug.com oracle.cuug.com bbs.cuug.com www.cuug.net

电话:010-59426307 010-59426319 邮政编码:100089

地址:北京市海淀区北清路164号28-38号院