gpt4 book ai didi

sql - 如果它具有依赖对象,如何将用户放入 postgres

转载 作者:行者123 更新时间:2023-11-29 11:14:52 26 4
gpt4 key购买 nike

数据库 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+

最佳答案

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

REASSIGN OWNED BY vantaa TO <newuser>

如果您不知道将其重新分配给谁,您可以重新分配给 postgres ...

REASSIGN OWNED BY vantaa TO postgres;

关于sql - 如果它具有依赖对象,如何将用户放入 postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32988702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com