Cei*_*ili 5 postgresql privileges psql
$ psql postgres
postgres=# \dn
List of schemas
Name | Owner
--------------------+----------
information_schema | postgres
pg_catalog | postgres
pg_toast | postgres
pg_toast_temp_1 | postgres
public | student
(5 rows)
Run Code Online (Sandbox Code Playgroud)
当我使用用户postgres登录psql时,它显示schema public由用户student拥有.但是,当我与用户学生登录psql时:
$ psql student
student=> \dn
List of schemas
Name | Owner
--------------------+----------
information_schema | postgres
pg_catalog | postgres
pg_toast | postgres
pg_toast_temp_1 | postgres
public | postgres
(5 rows)
Run Code Online (Sandbox Code Playgroud)
它表明schema public由用户postgres拥有.
如果具有此权限的用户认为已经完成,那么如何将模式公共所有权转让给用户学生?
Erw*_*ter 11
这是一种误解.您正在登录两个不同的数据库.
跑步时
$ psql postgres
Run Code Online (Sandbox Code Playgroud)
postgres是数据库的名称.使用默认配置时,数据库用户的名称是从使用ident身份验证的系统用户的名称派生的.唯一的参数假定为数据库名称.您不希望更改数据库中的任何内容postgres,它是用于维护任务的系统数据库.
另一个数据库已命名student.每个数据库都有一个架构public及其各自的所有者.
阅读psql手册或尝试低级man psql.
要public在数据库中转移架构的所有权,请student以超级用户身份登录:
psql -U postgres student
Run Code Online (Sandbox Code Playgroud)
或者只是(作为系统用户postgres):
psql student
Run Code Online (Sandbox Code Playgroud)
并运行:
ALTER SCHEMA public OWNER TO student;
Run Code Online (Sandbox Code Playgroud)
手册中的详细信息再次出现.
| 归档时间: |
|
| 查看次数: |
14775 次 |
| 最近记录: |