更改PSQL默认用户

Cra*_*ash 3 postgresql-9.1 ubuntu-12.04 psql

K-所以希望解释为什么我要这样做会有所帮助.我的大部分开发工作都是在公司提供的笔记本电脑上完成的; 但是当我回到家时,我想使用我的桌面.我有许多rails项目,其中用户名和密码已经定义为'postgres',所以我不想更改这些项目的.yml文件中的用户名和密码,只是为了让它在我的桌面上工作.太头疼了.所以,我想要做的就是更改我的postgres环境,以查找用户名'postgres'作为默认值.我也不想每次要登录时都要传递-U或-W.所以...

如何更改psql/postgres的默认角色?从命令行,如果我输入:

$ psql
Run Code Online (Sandbox Code Playgroud)

我回来了

psql: FATAL:  role "crash" does not exist
Run Code Online (Sandbox Code Playgroud)

它正在寻找"崩溃",因为这是我登录PC的用户帐户 - 但是,我希望我的默认用户名是"postgres"而不是"崩溃".如何更改PSQL在init上寻找的角色?

事实证明,Google有很多资源可以为postgres创建一个新角色,或者更改密码或其他任何有用的信息; 但是,我一直在寻找几个小时,我找不到任何具体的改变postgres应该默认使用哪个角色.

如果有人能指出我正确的方向,我会很感激.

Sys- ubuntu 12.04 lts 64位

Cra*_*ger 7

有关在Ubuntu社区网站上使用Ubuntu 上的 PostgreSQL的介绍性信息.

您还可以找到有关客户端身份验证PostgreSQL手册.

您需要设置PGUSER环境变量以覆盖默认用户.

它也可以是有用的,以限定一个服务libpq~/.pg_service.conf,每对文档libpq服务定义 ; 那么你可以参考,在psqlservice=myservice,避免了重复的细节.这是处理此问题的"正确"方法 - 定义服务,引用服务database.yml并在.pg_service.conf文件外部进行修改控制,指定实际含义,并在修订控制中使用模板副本以方便使用.

(该~/.psqlrc文件也可能有用请参阅psql的文档.)

Shell别名也很方便.我经常做像添加这样的事情

alias psomedb 'psql "service=somedb"'
Run Code Online (Sandbox Code Playgroud)

~/.bashrc方便地访问常用的DB和主机.

~/.pgpass文件可用于存储各种主机/端口/数据库/用户组合的密码.

所有这一切,作为用户常规工作是一个糟糕的主意postgres.它应该不会成为您的默认.创建一个普通用户,可能是一个拥有CREATEDB权限的用户,但不是超级用户.将该用户用于大多数任务,并且只postgres需要超级用户权限时才切换到超级用户(或您为此目的创建的其他用户).这与"不以root身份工作,sudo只在需要时才能工作"的原则相同.