PostgreSQL 命令行 psql,pg_dump等不支持口令参数,也就无法像mysql那样无需人工干预(输入口令)执行备份、恢复数据库的命令。
网上搜索有多种解决办法,比如通过设置PostgreSQL的环境变量参数来实现保存密码,或者通过Expect 来实现自动交互,帮助输入密码,或者用.pgpass 来保存密码。 参考链接 http://bbs.chinaunix.net/thread-1760961-1-1.html
这些方法都存在一定的安全隐患。其实pgsql在把安全性搞得如此高同时也提供了简单的解决办法,即pg_hba.conf中 ident鉴权验证方式
修改 pg_hba.conf 文件,添加到设置开始的第一位
local all all ident map=map1
并把已有的local行注释行为如下结果
#local all all md5
然后编辑 pg_ident.conf,添加
map1 root postgres
然后重启pgsql服务或者reload,如果当前系统用户是root,则可这样直接直接登录数据库
psql -Upostgres
其他具有sudo权限的用户也可这样免口令登录
sudo /usr/pgsql-9.1/bin/psql -Upostgre
注:pg_ident.conf 支持正则匹配
参考文档:
http://www.postgresql.org/docs/9.1/static/auth-pg-hba-conf.html
http://www.postgresql.org/docs/current/static/auth-username-maps.html
分享到:
相关推荐
针对两台服务器下的postgres数据库之间,实现无密码互相登录
pgsql拼接pgsql拼接pgsql拼接pgsql拼接
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
离线安装包,亲测可用
centos下php安装pgsql和pdo_pgsql扩展,这是另一种方法,很简便,用.so文件来安装
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
pgsql.zip 下载下载
asp.net C# PgSql驱动,包含了Npgsql.dll 与 mono.security。 gauss系统数据库也可用。
pgsql实现全文检索,需要安装必须的插件,内容写了如何安装等!
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
python库。 资源全名:pgsql2gist-0.2.0.tar.gz
资源来自pypi官网。 资源全名:pgsql-table-0.5.tar.gz
资源来自pypi官网。 资源全名:pgsql-table-0.3.1.tar.gz
navicat_pgsql navicat_pgsql navicat_pgsql navicat_pgsql
osm2pgsql (cygwin-package).zip svn 0.85.0 64bit 导入命令: osm2pgsql -v -c -d pingxiang -U postgres -W -H localhost -P 5432 -S default.style -s -C 1600 C:\Users\Amy\Downloads\planet_113.252,26.892_114...
mysql迁移到postgresql工具 mysql2pgsql.perl,支持环境 Linux / Mac OS / BSD / Solaris
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,亲测可用
关系型数据库PgSQL常用命令.pdf
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装