Son*_*pta 15 postgresql root role permission-denied
我对root用户,超级用户,用户和权限感到困惑!我无法在用户"sportu"内创建数据库.以下是我使用的命令: -
athleticu@ip-172-30-4-103:/home/ubuntu$ createdb -T template0 simple_db1
createdb: database creation failed: ERROR: permission denied to create database
athleticu@ip-172-30-4-103:/home/ubuntu$ sudo createdb -T template0 simple_db1
sudo: unable to resolve host ip-172-30-4-103
createdb: could not connect to database template1: FATAL: role "root" does not exist
Run Code Online (Sandbox Code Playgroud)
请有人澄清我的疑惑并告诉我应该写些什么!
Son*_*pta 40
嘿,我已经解决了这个问题.你要做的是首先以postgres用户身份登录,如下所示:
$ su postgres
$ psql
postgres=# alter user athleticu createdb;
ALTER ROLE
Run Code Online (Sandbox Code Playgroud)
希望它能帮到你:)
pol*_*con 20
键入\du在psql里,你会看到所有注册用户的列表和什么类型的权限,每个人都有.为了向登录的用户授予权限(例如'user1'),我必须使用以下命令使用该列表中的一个超级用户角色(例如'user2')注销并登录:
psql -U 'user2' -h localhost 'database2'
Run Code Online (Sandbox Code Playgroud)
其中'database2'是特定超级用户'user2'拥有权限的名称.以超级用户身份登录后,您可以通过以下方式向"user1"授予权限:
ALTER ROLE user1 WITH CREATEDB
Run Code Online (Sandbox Code Playgroud)
要么
ALTER ROLE user1 WITH SUPERUSER
Run Code Online (Sandbox Code Playgroud)
然后再次以user1身份登录,user1现在是超级用户.
Fer*_*oao 19
目前,这对我有用:
sudo su postgres
psql
ALTER USER username WITH CREATEDB;
\q
exit
Run Code Online (Sandbox Code Playgroud)
的根用户是系统独立于所述的Postgres一个帐户。只有一个root用户。
一个超级用户是Postgres的访问到所有的账户。可能有许多超级用户。
系统帐户和Postgres账户是不同的东西,但除非你指定一个Postgres的用户名,当你连接到数据库(通过实用工具,比如psql,createdb,dropdb,或以其他方式),将在希望使用当前系统用户的名称,有一个相应的Postgres帐户同名。该root用户不,默认情况下,在Postgres的一个相应的账户。
在* nix上安装Postgres时,它将同时创建一个名为的超级用户postgres和一个名为的系统用户postgres。
因此,当您需要使用Postgres作为内置超级用户执行某些操作时,有两种选择:
sudo su - postgres成为postgres 系统用户和执行你的命令(createdb,psql,等)。由于系统用户的名称与数据库超级用户的名称相同,因此您的命令将以适当的帐户连接。-U开关一样执行,例如psql -U postgres ...。根据您的Postgres服务器的身份验证设置,可能会要求您使用一种或两种连接方法输入密码。
| 归档时间: |
|
| 查看次数: |
32550 次 |
| 最近记录: |