一尘不染

如果有依赖对象,如何将用户放到postgres中

sql

数据库idd所有者是角色idd_owner

数据库具有2个数据模式:publicfirma1。用户可以在此数据库和对象中直接或间接分配权限。用户不是任何对象的所有者。它仅授予权利。

如何丢弃这样的用户?

我试过了

revoke all on all tables in schema public,firma1 from "vantaa" cascade;
revoke all on all sequences in schema public,firma1 from "vantaa" cascade;
revoke all on database idd from "vantaa" cascade;
revoke all on all functions in schema public,firma1 from "vantaa" cascade;
revoke all on schema public,firma1 from "vantaa" cascade;
revoke idd_owner from "vantaa" cascade;
ALTER DEFAULT PRIVILEGES IN SCHEMA public,firma1 revoke all ON TABLES from "vantaa";
DROP ROLE if exists "vantaa"

但是有错误

role "vantaa" cannot be dropped because some objects depend on it
DETAIL:  privileges for schema public
DROP ROLE if exists "vantaa"

如何解决此问题,以便用户可以掉线?

如何创建以用户名作为参数并在所有情况下都删除该用户而不删除数据的sql或plpgsql方法?

使用Postgres 9.1+


阅读 110

收藏
2021-05-16

共1个答案

一尘不染

在删除用户之前,您可以运行:

REASSIGN OWNED BY vantaa TO <newuser>

如果您不知道将谁重新分配给Postgres,则可以将其重新分配给Postgres。

REASSIGN OWNED BY vantaa TO postgres;
2021-05-16