暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ERROR: must be member of role "jzsh"

原创 jieguo 2022-08-09
2469

今天遇到无法修改表owner的问题

pgdb=> \c pgdb postgres
Password for user postgres: 
You are now connected to database "pgdb" as user "postgres".
pgdb=# grant sde to jzsh;
NOTICE:  role "jzsh" is already a member of role "sde"
GRANT ROLE
pgdb=# grant sde to jzsh  with admin option;
GRANT ROLE
pgdb=# \c pgdb sde
Password for user sde: 
You are now connected to database "pgdb" as user "sde".
pgdb=> Alter table sde.market_grid owner to jzsh;
ERROR:  must be member of role "jzsh"
pgdb=> \c pgdb jzsh
Password for user jzsh: 
You are now connected to database "pgdb" as user "jzsh".
pgdb=> Alter table sde.market_grid owner to jzsh;
ERROR:  must be owner of table market_grid
pgdb=> grant sde to jzsh  with admin option;
NOTICE:  role "jzsh" is already a member of role "sde"
GRANT ROLE
pgdb=> Alter table sde.market_grid owner to jzsh;
ERROR:  must be owner of table market_grid
pgdb=> \c pgdb sde
Password for user sde: 
You are now connected to database "pgdb" as user "sde".
pgdb=> Alter table sde.market_grid owner to jzsh;
ERROR:  must be member of role "jzsh"
pgdb=> Alter table market_grid owner to jzsh;
ERROR:  must be member of role "jzsh"
pgdb=> select current_user;
 current_user 
--------------
 sde
(1 row)

pgdb=> reassign owned by sde to jzsh;
ERROR:  permission denied to reassign objects
pgdb=> \q

处理办法:
先回收权限,再赋正确角色。
image.png
image.png

[postgres@pgdb ~]$ psql
Password for user postgres: 
psql (12.2)
Type "help" for help.

postgres=# REVOKE sde FROM jzsh;

postgres=# GRANT jzsh TO sde WITH ADMIN OPTION;

postgres=# \c pgdb sde
Password for user sde: 
You are now connected to database "pgdb" as user "sde".
pgdb=> Alter table sde.market_grid owner to jzsh;
ERROR:  permission denied for schema sde
pgdb=> \dn
  List of schemas
  Name  |  Owner   
--------+----------
 public | postgres
 sde    | sde
 test   | jzsh
(3 rows)

pgdb=> reassign owned by sde to jzsh;
REASSIGN OWNED
pgdb=> \dn
  List of schemas
  Name  |  Owner   
--------+----------
 public | postgres
 sde    | jzsh
 test   | jzsh
(3 rows)

pgdb=> Alter table sde.market_grid owner to jzsh;
ALTER TABLE

pgdb=> \dt
                              List of relations
 Schema |                 Name                 |       Type        |  Owner   
--------+--------------------------------------+-------------------+----------
 sde    | market_grid                          | table             | jzsh
 sde    | market_grid_no                       | table             | jzsh
 sde    | metadata                             | table             | jzsh
 sde    | mvtables_modified                    | table             | jzsh

相关参考:https://www.modb.pro/db/26499
https://sqlora.blog.csdn.net/article/details/124142578

最后修改时间:2022-08-09 12:04:36
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论