fol*_*lky 2 sql permissions amazon-web-services amazon-redshift
我正在尝试删除用户表单 Redshift 但它总是失败并显示相同的消息
用户“XXX”不能被删除,因为用户对某个对象有权限;
在谷歌搜索之后,我发现我需要撤销用户的权限,所以我运行了几个撤销查询,但我仍然失败并显示相同的消息:
我运行的查询:
revoke all on schema YYY from XXX;
revoke usage on schema ZZZ from XXX;
revoke all on database LLL from XXX;
Run Code Online (Sandbox Code Playgroud)
知道为什么我仍然收到此失败消息吗?
小智 6
请从 github "v_get_obj_priv_by_user"部署此视图
完成后,请按照以下步骤操作
A_user ---必须删除的用户
B_user ---旧表的表所有权需要映射到这个用户。
如果您希望更改属于 A_user 的所有表的所有者,则
select schemaname,tablename from pg_tables where tableowner like 'A_user';
对于检索到的上述表格运行
alter table schemaname.tablename owner to B_user;
撤消 A_user 具有某些权限的架构上的所有内容
select distinct schemaname from admin.v_get_obj_priv_by_user where usename like 'A_user';
对于检索到的上述表格运行
revoke all on schema XXXX from A_user;
撤销所有 A_user 具有某些权限的表
select distinct tables from admin.v_get_obj_priv_by_user where usename like 'A_user';
对于检索到的上述表格运行
revoke all on all tables in schema XXXX from A_user;
删除用户用户名;
如果一个集群中有两个数据库,请对两个数据库都执行此操作。
小智 5
该v_generate_user_grant_revoke_ddl管理视图允许您查看现有的赠款和其相应的撤销。
使用这个 sql:
SELECT
ddl
FROM admin.v_generate_user_grant_revoke_ddl
WHERE ddltype = 'revoke'
AND grantee = '<USERNAME>
OR grantor = '<USERNAME>')
ORDER BY
objseq,
grantseq desc;
Run Code Online (Sandbox Code Playgroud)
我终于能够找到所有的赠款并生成撤销声明。
| 归档时间: |
|
| 查看次数: |
4431 次 |
| 最近记录: |