5.6. 权限

一旦一个对象被创建,它会被分配一个所有者。所有者通常是执行创建语句的角色。对于大部分类型的对象,初始状态下只有所有者(或者超级用户)能够对该对象做任何事情。为了允许其他角色使用它,必须分配权限

有多种不同的权限:SELECTINSERTUPDATEDELETETRUNCATEREFERENCESTRIGGERCREATECONNECTTEMPORARYEXECUTE以及USAGE。可以应用于一个特定对象的权限随着对象的类型(表、函数等)而不同。PostgreSQL所支持的不同类型的完整权限信息请参考GRANT。下面的章节将简单介绍如何使用这些权限。

修改或销毁一个对象的权力通常是只有所有者才有的权限。

一个对象可以通过该对象类型相应的ALTER命令来重新分配所有者,例如ALTER TABLE。超级用户总是可以做到这点,普通角色只有同时是对象的当前所有者(或者是拥有角色的一个成员)以及新拥有角色的一个成员时才能做同样的事。

要分配权限,可以使用GRANT命令。例如,如果joe是一个已有角色,而accounts是一个已有表,更新该表的权限可以按如下方式授权:

GRANT UPDATE ON accounts TO joe;

ALL取代特定权限会把与对象类型相关的所有权限全部授权。

一个特殊的名为PUBLIC的“角色”可以用来向系统中的每一个角色授予一个权限。同时,在数据库中有很多用户时可以设置“组”角色来帮助管理权限。详见第 21 章。

为了撤销一个权限,使用REVOKE命令:

REVOKE ALL ON accounts FROM PUBLIC;

对象拥有者的特殊权限(即执行DROPGRANTREVOKE等的权力)总是隐式地属于拥有者,并且不能被授予或撤销。但是对象拥有者可以选择撤销他们自己的普通权限,例如把一个表变得对他们自己和其他人只读。

一般情况下,只有对象拥有者(或者超级用户)可以授予或撤销一个对象上的权限。但是可以在授予权限时使用“with grant option”来允许接收人将权限转授给其他人。如果后来授予选项被撤销,则所有从接收人那里获得的权限(直接或者通过授权链获得)都将被撤销。更多详情请见GRANT和REVOKE参考页。

本文转自PostgreSQL中文社区,原文链接:5.6. 权限

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.6. 权限相关推荐

  1. PostgreSQL 10.1 手册_部分 II. SQL 语言_第 9 章 函数和操作符_9.23. 行和数组比较

    9.23. 行和数组比较 9.23.1. IN9.23.2. NOT IN9.23.3. ANY/SOME (array)9.23.4. ALL (array)9.23.5. 行构造器比较9.23.6 ...

  2. PostgreSQL 10.1 手册_部分 II. SQL 语言_第 9 章 函数和操作符_9.4. 字符串函数和操作符...

    9.4. 字符串函数和操作符 9.4.1. format 本节描述了用于检查和操作字符串值的函数和操作符.在这个环境中的串包括所有类型character.character varying和text的 ...

  3. PostgreSQL 10.1 手册_部分 II. SQL 语言_第 8 章 数据类型_8.10. 位串类型

    8.10. 位串类型 位串就是一串 1 和 0 的串.它们可以用于存储和可视化位掩码.我们有两种类型的 SQL 位类型:bit(n)和bit varying(n),其中 n是一个正整数. bit类型的 ...

  4. PostgreSQL 10.1 手册_部分 II. SQL 语言_第 12 章 全文搜索_12.4. 额外特性

    12.4. 额外特性 12.4.1. 操纵文档12.4.2. 操纵查询12.4.3. 用于自动更新的触发器12.4.4. 收集文档统计数据 这一节描述在文本搜索中有用的一些额外的函数和操作符. 12. ...

  5. PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.11. 外部数据

    5.11. 外部数据 PostgreSQL实现了部分的SQL/MED规定,允许我们使用普通SQL查询来访问位于PostgreSQL之外的数据.这种数据被称为外部数据(注意这种用法不要和外键混淆,后者是 ...

  6. PostgreSQL 10.1 手册_部分 II. SQL 语言_第 9 章 函数和操作符_9.15. JSON 函数和操作符...

    9.15. JSON 函数和操作符 表 9.43展示了可以用于两种 JSON 数据类型(见第 8.14 节)的操作符. 表 9.43. json和jsonb 操作符 操作符 右操作数类型 描述 例子 ...

  7. PostgreSQL 10.1 手册_部分 II. SQL 语言_第 10 章 类型转换_10.4. 值存储

    10.4. 值存储 将被插入到一个表的值会按照下列步骤被转换到目标列的数据类型. 值存储类型转换 检查一个与目标的准确匹配. 否则,尝试转换表达式为目标类型.如果在两种类型之间的一个 赋值造型已经被注 ...

  8. PostgreSQL 10.1 手册_部分 II. SQL 语言_第 8 章 数据类型_8.6. 布尔类型

    8.6. 布尔类型 PostgreSQL提供标准的SQL类型boolean,参见表 8.19.boolean可以有多个状态:"true(真)"."false(假)&quo ...

  9. PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.5. 修改表

    5.5. 修改表 5.5.1. 增加列5.5.2. 移除列5.5.3. 增加约束5.5.4. 移除约束5.5.5. 更改列的默认值5.5.6. 修改列的数据类型5.5.7. 重命名列5.5.8. 重命 ...

最新文章

  1. JS正则表达式使用方法及示例
  2. Python Django 图片上传及显示代码示例
  3. web 开发之js---js 中的数组操作
  4. mysql把一个字段加到另一张表中_mysql如何能把一个表中的某一字段下的数据加入另一个表中相同字段下,条件是两表中的某字段相同?...
  5. 用SQL语句向表格中插入数据
  6. c++ post请求_Golang GinWeb框架5绑定请求字符串/URI/请求头/复选框/表单类型
  7. 修改linux kernel参数 semopm
  8. Notepad++一键编译运行(Python、Java、C++)
  9. ShadowGun Demo学习(非技术向)
  10. 燃烧远征怀旧服务器人数小程序,魔兽怀旧服一直更新下去,最终会开到哪个版本?...
  11. STM32F103ZET6【标准库函数开发】----- 04串口4的IO口收发数据实验测试
  12. L1-009 N个数求和(包含样例分析)
  13. Win10下安装Ubuntu双系统Ubuntu分区
  14. ctrypto-js中,DES解密的iv向量处理
  15. 如何通过Python进行图片批量下载?
  16. Linux系统或服务器运行Fastqc
  17. 机器学习笔记十三:Ensemble思想(上)
  18. Java 编程问题:四、类型推断
  19. java实现开根号算法
  20. Arduino开发教程汇总

热门文章

  1. SpringBoot连接MQTT服务器时因ClintID重复导致频繁掉线重连
  2. Winform中实现监控CPU内存使用率(附代码下载)
  3. Input为number类型maxlength不好使,用js轻松解决
  4. SSM中实现CRUD并配置输出sql语句
  5. 速看,三分钟带你了解IP协议!
  6. 构建良好的敏捷团队氛围
  7. 服务器json文件怎么创建对象,如何从json文件(或xml文件)创建vb.net对象类
  8. html标签的下一级遍历,HTML遍历某个元素下的子元素
  9. 到喜啦携手神策数据,大数据加速产品服务的创新整合发展
  10. 神策数据成为 Adjust 在中国首家数据分析合作伙伴