psql用户机制跟mysql很大不同的,有个pg_shadow的表存放数据库用户信息,你刚安装完数据库时就一个数据库管理员(既是系统用户又是数据库用户),其他数据库用户自己建的。自己看postgresql的文档,很详细的。

解决方案 »

  1.   

    pg_shadow是放在哪个数据库里的啊?template1没有啊,template0用postgres看不到吗?提示说psql: FATAL:  Database "template0" is not currently accepting connections另外我新建了一个用户,确不能使用,su总是说不存在,不管是用postgres还是root都是这样。
    主要是这样的,朋友公司要换软件,但是数据在postgreSQL里,想导出来,但是又不知道用户跟密码,
      

  2.   

    pg_shadow是系统表,只有数据库系统管理员可以访问,不要用template0和template1,那两个是系统建的数据库,不用管它。你可以以数据库管理员(默认安装的是postgres)在任何你所建立任何数据库(其实进template1也可以的)中,直接执行sql: select * from pg_shadow;  就可以查到系统中数据库用户信息。\d是看不到这些系统表的。不过你能看到系统中有哪些数据库用户,并不能看到密码的明码,里面都是加密后的。当然你可以以数据库管理员身份对任何其他的数据库用户的密码进行修改:alter user 'youruser' with password 'yourpassword';
    你倒出数据,用数据库管理员身份就可以倒出任何数据库了啊。