zoukankan      html  css  js  c++  java
  • pg删除账号,权限的回收问题

    在pg中删除账号时,一般不能直接删除账号,要先将该账号上所有的对应权限收回,但往往这一步是比较繁琐的,可能当时赋权的对象类型很多,对象也比较多,虽然可以通过sql按照类型来收回针对整个schema的所有权限,但还是有可能漏掉的,可能有使用ALTER DEFAULT PRIVILEGES定义的默认权限。

    实际上pg提供了对应的命令来处理删除用户,碰到的权限回收问题。

    可以结合REASSIGN OWNED BY old_user TO other_user;DROP OWNED BY ole_user;来实现。

    REASSIGN OWNED BY old_user TO other_user;

    语句是将old_user拥有owner权限的对象转移给other_user,那么old_user将不会再拥有owner权限的对象了。

    DROP OWNED BY ole_user;

    语句是在当前库中,删除用户拥有的对象;并收回在当前库赋予的任何权限。

    由于之前已经使用了REASSIGN OWNED BY,old_user用户下已无owned的对象,对于账号不只是存在owner的情况,可能用户只是查询或修改的权限,此时再使用DROP OWNED BY则可以将其他权限收回。

    最后删除账号。

    REASSIGN OWNED BY old_user TO postgres;
    DROP OWNED BY ole_user;
    DROP USER old_user;
    

    REASSIGN OWNED BY 中可以将对象的拥有者修改为postgres或是其他较高权限的业务账号。

    注意:REASSIGN OWNED BYDROP OWNED BY 命令只能删除对应库中的权限,如果在其他库中仍有要收回的权限,要切换到其他库执行。

  • 相关阅读:
    GitLab-添加SSH Key亲历教程
    java-数组Array的应用总结
    Java-方法的重载和重写
    JSON-相关的工具收藏分享
    java-无重复的排列组合小技能
    Charles安装与使用
    深拷贝浅拷贝
    文件操作
    列表生成式
    非空即真,非零即真
  • 原文地址:https://www.cnblogs.com/xiaotengyi/p/10132083.html
Copyright © 2011-2022 走看看