1

如何让自己成为 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:数据库创建失败:错误:创建数据库的权限被拒绝

请帮忙

4

2 回答 2

5

长话短说 - 你不希望 vagrant 成为超级用户。相反,从 postgres 帐户创建 vagrant 数据库,并使其成为所有者(即数据库)vagrant 用户。

于 2013-02-12T11:19:37.640 回答
0

createuser 脚本采用“--createdb”选项来允许新用户创建数据库(参见http://www.postgresql.org/docs/8.1/static/app-createuser.html)。您没有指定这一点,因此“vagrantUser”无法创建新数据库。

话虽如此,@depesz 提出了一个很好的观点——最佳实践是拥有一个超级用户/根数据库帐户并使用它来创建/维护数据库、为数据库创建单独的帐户并为这些帐户授予适当的权限;但我完全专注于这个问题 =)

于 2013-02-12T11:24:42.480 回答