Postgresql 和EnterpriseDb 设置密码自动保存
在 Windows 下使用 pgAdmin III 连接到数据库服务器时,如果选择了“保存密码”, 则 pgAdmin III 将数据库密码以明文保存在 $User_Home\Application Data\postgresql\pgpass.conf
文件中(C:\Documents and Settings\enterprisedb\Application Data\postgresql),估计之前的其它版本也是此。 但看pgpass.conf
localhost:5444:edb:enterprisedb:Xm1234567
上面的格式是
hostname:port:dbname:user:passwd
所以如果我们想设置保存密码可以在如上添加记录即可(在自动备份是非常有用),以下是在Window 和Linux 的设置方法:
跳过md5密码认证的方法
windows
1、设置环境变量PGPASSWORD,e.g
set PGPASSWORD=密码
2、创建pgpass.conf文件,设置环境变量PGPASSFILE,内容格式如下
hostname:port:database:username:password
e.g
192.168.1.251:5432:*:postgres:密码
set PGPASSFILE=d:/pgsql/data/pgpass.conf
我在dos 下使用>set PGPASSFILE=C:\Documents and Settings\enterprisedb\Application Data\postgresql\pgpass.conf
居然沒有用,(原來通过命令set 设置的变量是临时变量,所以。。。。,没办法,为了快捷,我通过我的电脑--》右键属性进行设置,可以了)
或者可以在自动备份的脚步中添加也是可以的 ,呵呵。。
linux
1、设置环境变量PGPASSWORD,e.g
export PGPASSWORD=密码
2、创建.pgpass文件,设置环境变量PGPASSFILE,内容格式如下
hostname:port:database:username:password
e.g
192.168.1.251:5432:*:postgres:密码
export PGPASSFILE=/home/postgres/.pgpass
chmod 0600 /home/postgres/.pgpass
hostname:port:database:username:password头四个字段每个都可以是一个文本值,或者 *,它匹配所有的东西。第一个匹配当前连接参数的口令行的口令域将得以使用。(因此,如果你使用了通配符
,那么应该把最具体的记录放在前面。)如果记录包含 : 或者 \ ,应该用 \ 逃逸。一个 localhost 的主机名匹配来自本机的 host(TCP)和 local (Unix 域套接字)。
.pgpass 的权限必须不允许任何全局或者同组的用户访问;我们可以用命令 chmod 0600 ~/.pgpass 实现这个目的。如果权限比这个松,这个文件将被忽略。(不过目前在 Microsoft Windows 上没有检
查这个文件的权限。)
http://blog.sina.com.cn/s/blog_4e74e42a01000aq4.html