数据库idd所有者是角色idd_owner。
idd_owner
数据库具有2个数据模式:public和firma1。用户可以在此数据库和对象中直接或间接分配权限。用户不是任何对象的所有者。它仅授予权利。
public
firma1
如何丢弃这样的用户?
我试过了
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+
在删除用户之前,您可以运行:
REASSIGN OWNED BY vantaa TO <newuser>
如果您不知道将谁重新分配给Postgres,则可以将其重新分配给Postgres。
REASSIGN OWNED BY vantaa TO postgres;