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

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 83|回复: 0
打印 上一主题 下一主题

psql 访问数据库的密码验证

[复制链接]
跳转到指定楼层
楼主
发表于 2024-3-31 17:10:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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.

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-4-30 13:01 , Processed in 0.091296 second(s), 19 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表