如何让自己成为postgresql的超级用户?
我一直在尝试创建数据库,并且一直遇到以下错误:
createdb:数据库创建失败:错误:拒绝创建数据库的权限
我猜这是因为我不是超级用户,但我不知道出了什么问题。 这就是我所做的:
> sudo su postgres
> postgres@precise64:/xxx/xxx/projectfile$createuser -P
> Enter name of role to add: vagrantUser
> Enter password:
> Enter it again:
> Shall the new role be a superuser? (y/n) y
> postgres@precise64:/vagrant/django_projects/mblog$ psql -U vagrantUser template1
> psql: FATAL: Peer authentication failed for user "vagrantUser"
> postgres@precise64:/vagrant/django_projects/mblog$ exit
> (venv)vagrant@precise64:/vagrant/project$:psql template1
> template1 =# \q
> (venv)vagrant@precise64:/vagrant/project$:createdb mydb
我收到以下错误:
createdb:数据库创建失败:错误:拒绝创建数据库的权限
请求帮助
答案 0 :(得分:5)
长话短说 - 你不希望流浪者成为超级用户。相反,从postgres帐户创建vagrant数据库,并使其成为所有者(即数据库)的流浪用户。
答案 1 :(得分:0)
createuser脚本使用“--createdb”选项允许新用户创建数据库(请参阅http://www.postgresql.org/docs/8.1/static/app-createuser.html)。 您没有指定此项,因此“vagrantUser”无法创建新数据库。
话虽如此,@ depesz提出了一个很好的观点 - 最佳做法是拥有一个超级用户/根数据库帐户,并使用它来创建/维护数据库,为数据库创建单独的帐户并为这些帐户授予适当的权限;但我完全专注于这个问题=)