我需要创建一个超级用户,这样我就可以创建一个db,但是我遇到了麻烦.我以用户postgres身份登录:
sudo su - postgres
Run Code Online (Sandbox Code Playgroud)
但是当我尝试创建超级用户时,我遇到以下问题:
$createuser glassboard;
Shall the new role be a superuser? (y/n) y
Run Code Online (Sandbox Code Playgroud)
createuser:创建新角色失败:错误:必须是超级用户才能创建超级用户
如果我尝试在psql中创建一个新用户,然后让他成为超级用户,也会发生这种情况:
$ psql -U postgres
psql (9.1.4)
Type "help" for help.
postgres=> create user glassboard
postgres-> ;
ERROR: permission denied to create role
Run Code Online (Sandbox Code Playgroud)
如何创建超级用户?
\dupostgres的输出:
postgres=> \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
main | Superuser, Create role, Create DB, Replication | {}
postgres | | {}
Run Code Online (Sandbox Code Playgroud)
Dan*_*ité 12
某些OSX程序包不会创建postgres超级用户数据库帐户.超级用户的名称不同,在您的情况下main.
如果psql -U main不指定数据库,则默认使用与用户相同的名称.如果您没有命名main数据库,请使用该-d选项指示其他数据库.
如果您没有要连接的数据库,请使用 template1
psql -U main -d template1
Run Code Online (Sandbox Code Playgroud)
如果你仍然要授予超级用户权限postgres,请执行一次登录psql:
alter user postgres superuser;
Run Code Online (Sandbox Code Playgroud)
就我在 PostgreSQL 9.2 上的情况而言,postgres创建了超级用户,但是当我从该postgres用户创建其他超级用户时,从未收到提示,Shall the new role be a superuser? (y/n)因此新用户是使用默认权限创建的。为了解决这个问题,我只是以postgres用户身份运行此命令:ALTER USER myuser WITH SUPERUSER;
默认的超级用户不是postgres,而是当前的 mac-os 用户。为了解决这个问题:
1. 使用当前(系统)用户连接到您的数据库。以下示例连接到名为“postgres”的数据库:
psql -d postgres
Run Code Online (Sandbox Code Playgroud)
你应该进入 psql 提示符,比如postgres=#
2. 将超级用户授予众所周知的postgres用户名:
ALTER ROLE postgres superuser;
Run Code Online (Sandbox Code Playgroud)
如果一切顺利,您将看到响应:ALTER ROLE
3. 享受!(退出)\q
| 归档时间: |
|
| 查看次数: |
23620 次 |
| 最近记录: |