21.4. 删除角色

由于角色可以拥有数据库对象并且能持有访问其他对象的特权,删除一个角色 常常并非一次DROP ROLE就能解决。任何被该用户所拥有 的对象必须首先被删除或者转移给其他拥有者,并且任何已被授予给该角色的 权限必须被收回。

对象的拥有关系可以使用ALTER命令一次转移出去,例如:

ALTER TABLE bobs_table OWNER TO alice;

此外,REASSIGN OWNED命令可以被用来把要被删除的 角色所拥有的所有对象的拥有关系转移给另一个角色。由于 REASSIGN OWNED不能访问其他数据库中的对象,有必要 在每一个包含该角色所拥有对象的数据库中运行该命令(注意第一个这样的 REASSIGN OWNED将更改任何在数据库间共享的该角色拥 有的对象的拥有关系,即数据库或者表空间)。

一旦任何有价值的对象已经被转移给新的拥有者,任何由被删除角色拥有的剩余对象 就可以用DROP OWNED命令删除。再次,由于这个命令不能 访问其他数据库中的对象, 有必要在每一个包含该角色所拥有对象的数据库中运行 该命令。还有,DROP OWNED将不会删除整个数据库或者表空间, 因此如果该角色拥有任何还没有被转移给新拥有者的数据库或者表空间,有必要手工 删除它们。

DROP OWNED也会注意移除为不属于目标角色的对象授予给目标 角色的任何特权。因为REASSIGN OWNED不会触碰这类对象,通 常有必要运行REASSIGN OWNED和 DROP OWNED(按照这个顺序!)以完全地移除要被删除对象的 从属物。

总之,移除曾经拥有过对象的角色的方法是:

REASSIGN OWNED BY doomed_role TO successor_role;
DROP OWNED BY doomed_role;
-- 在集簇中的每一个数据库中重复上述命令
DROP ROLE doomed_role;

如果不是所有的拥有对象都被转移给了同一个后继拥有者,最好手工处理异常 然后执行上述步骤直到结束。

如果在依赖对象还存在时尝试了DROP ROLE,它将发出 消息标识哪些对象需要被重新授予或者删除。

本文转自PostgreSQL中文社区,原文链接:21.4. 删除角色

PostgreSQL 10.1 手册_部分 III. 服务器管理_第 21 章 数据库角色_21.4. 删除角色相关推荐

  1. PostgreSQL 10.1 手册_部分 III. 服务器管理_第 20 章 客户端认证

    第 20 章 客户端认证 目录 20.1. pg_hba.conf文件20.2. 用户名映射20.3. 认证方法 20.3.1. 信任认证20.3.2. 口令认证20.3.3. GSSAPI 认证20 ...

  2. PostgreSQL 10.1 手册_部分 III. 服务器管理_第 16 章 从源代码安装_16.5. 安装后设置...

    16.5. 安装后设置 16.5.1. 共享库16.5.2. 环境变量 16.5.1. 共享库 在一些有共享库的系统里,你需要告诉你的系统如何找到新安装的共享库.那些并不是必须做这个工作的系统包括 F ...

  3. PostgreSQL 10.1 手册_部分 III. 服务器管理_第 19 章 服务器配置_19.11. 客户端连接默认值...

    19.11. 客户端连接默认值 19.11.1. 语句行为 19.11.2. 区域和格式化 19.11.3. 共享库预载入 19.11.4. 其他默认值 19.11.1. 语句行为 search_pa ...

  4. PostgreSQL 10.1 手册_部分 III. 服务器管理_第 19 章 服务器配置_19.8. 错误报告和日志...

    19.8. 错误报告和日志 19.8.1. 在哪里做日志19.8.2. 什么时候记录日志19.8.3. 记录什么到日志19.8.4. 使用 CSV 格式的日志输出19.8.5. 进程标题 19.8.1 ...

  5. PostgreSQL 10.1 手册_部分 III. 服务器管理_第 30 章 可靠性和预写式日志_30.5. WAL内部...

    30.5. WAL内部 WAL是自动被启用的.除了做一些设置满足存放WAL日志的磁盘空间需求以及一些必要的调节以外(参阅第 30.4 节),对管理员没有什么其他要求. 当每个新记录被写入时,WAL记录 ...

  6. PostgreSQL 10.1 手册_部分 III. 服务器管理_第 26 章 高可用、负载均衡和复制_26.4. 日志传送的替代方法...

    26.4. 日志传送的替代方法 26.4.1. 实现26.4.2. 基于记录的日志传送 前一节描述的内建后备模式的一种替代方案是使用一个轮询归档位置的 restore_command.这是版本 8.4 ...

  7. PostgreSQL 10.1 手册_部分 III. 服务器管理_第 24 章 日常数据库维护工作_24.3. 日志文件维护...

    24.3. 日志文件维护 把数据库服务器的日志输出保存在一个地方是个好主意, 而不是仅仅通过/dev/null丢弃它们. 在进行问题诊断的时候,日志输出是非常宝贵的.不过,日志输出可能很庞大(特别是在 ...

  8. PostgreSQL 10.1 手册_部分 III. 服务器管理_第 30 章 可靠性和预写式日志_30.4. WAL配置...

    30.4. WAL配置 有几个WAL相关的配置参数会影响数据库性能.本节将解释它们的使用.关于服务器配置参数的设置的一般信息请参考第 19 章. 检查点是在事务序列中的点,这种点保证被更新的堆和索引数 ...

  9. PostgreSQL 10.1 手册_部分 III. 服务器管理_第 32 章 回归测试_32.5. 测试覆盖检查

    32.5. 测试覆盖检查 PostgreSQL 源代码可以使用覆盖测试指令编译,因此可以检查哪些部分的代码被回归测试或任何其他测试套件所覆盖.当前使用 GCC 编译时支持该特性,并且需要gcov和lc ...

最新文章

  1. linux sftp 重命名,linux下ssh/sftp配置和权限设置
  2. HttpHandler在IIS中的部署问题(扩展名映射)
  3. linux pppd源码下载_pppd源代码分析
  4. 关于敏捷开发方法(Agile Software Development)的阅读笔记
  5. [恢]hdu 2147
  6. 宁波送餐机器人_重磅合作丨擎朗送餐机器人进驻外婆家,让等餐顾客不再流失...
  7. Kontakt 6 for mac - 音频采样器 双版本
  8. 批量裁剪或延伸的lisp程序_10 行 Python 代码,批量压缩图片 500 张,简直太强大了...
  9. mysql做主从分离后插入更新过慢
  10. matlab 2013a破解文件
  11. js判断数组的六种方法
  12. 回顾传输层的TCP与UDP协议
  13. 三种常用的数字数据编码方式
  14. SAP QM 特性导出及定性定量
  15. 【备份】使用ubuntu一个月,记录的问题和解决方案
  16. 使用C#在VS窗体应用中调起一个选择框,完成图片替换
  17. 多模态情感分析论文解读——CTFN模型
  18. python房子_用Python研究了三千套房子,告诉你究竟是什么抬高了房价?
  19. Phaser(二):小恐龙跑酷游戏
  20. 究竟怎样写代码才算是好代码

热门文章

  1. PC人脸识别登录,出乎意料的简单
  2. 张文宏在人工智能大会上“泼冷水”:国内疫情基本结束,防控一开始用的全是“人工”!
  3. 谷歌、OpenAI 做了一个“魔性AI显微镜”,打算撬开人工智能黑箱
  4. 科普:不要对移动机器人有误解
  5. IoT 、5G与边缘计算将会擦出怎样的火花?
  6. 受小动物大脑结构启发,研究人员开发出新的深度学习模型:更少神经元,更多智能...
  7. 激荡十年:美国正在衰落和正在兴起的25个行业
  8. 人类大脑神经如何进化?寄生虫充当了隐形设计师
  9. 胡小明:城市大脑与人脑不同的数据意识
  10. 打破国外垄断,我国拿下一项“制芯”关键技术