【PostgreSQL】表操作-表权限

【PostgreSQL】表操作快速链接
创建表及基础表命令
修改表
表权限

创建对象时,会为其分配所有者。所有者通常是执行创建语句的角色。对于大多数类型的对象,初始状态是只有所有者(或超级用户)才能对对象执行任何操作。要允许其他角色使用它,必须授予权限。

有不同种类的特权:SELECT、INSERT、UPDATE、DELETE、TRUNCATE和REFERENCES。适用于特定对象的权限因对象的类型(表、函数等)而异。有关这些特权含义的更多详细信息如下所示。以下各节和章节还将向您展示如何使用这些权限。
TRIGGER
CREATE
CONNECT
TEMPORARY
EXECUTE
USAGE
SET
ALTER SYSTEM

可用的权限

  • SELECT
    允许来自表、视图、实例化视图或其他类似表的对象的任何列或特定列。还允许使用 .引用 、 或 中的现有列值也需要此权限。对于序列,此权限还允许使用该函数。对于大型对象,此权限允许读取对象。SELECTCOPY TOUPDATEDELETEMERGEcurrval

  • INSERT
    允许将新行放入表、视图等。可以对特定列授予,在这种情况下,命令中只能将这些列分配给这些列(因此其他列将接收默认值)。还允许使用 .INSERTINSERTCOPY FROM

  • UPDATE
    允许表、视图等的任何列或特定列(实际上,任何重要的命令也需要特权,因为它必须引用表列来确定要更新的行和/或计算列的新值。 除了权限之外,还需要至少一列的此权限。对于序列,此权限允许使用 and 函数。对于大型对象,此权限允许写入或截断对象。UPDATEUPDATESELECTSELECT … FOR UPDATESELECT … FOR SHARESELECTnextvalsetval

  • DELETE
    允许从表、视图等中获取行(实际上,任何重要的命令也需要特权,因为它必须引用表列来确定要删除的行。DELETEDELETESELECT

  • TRUNCATE
    允许在桌子上。TRUNCATE

  • REFERENCES
    允许创建引用表或表的特定列的外键约束。

  • TRIGGER
    允许在表、视图等上创建触发器。

  • CREATE
    对于数据库(database),允许在数据库中创建新的架构和发布,并允许在数据库中安装受信任的扩展。
    对于架构(schema),允许在架构中创建新对象。要重命名现有对象,您必须拥有该对象并具有包含架构的此权限。
    对于表空间(tablespace),允许在表空间内创建表、索引和临时文件,并允许创建将表空间作为默认表空间的数据库。
    请注意,撤消此权限不会更改现有对象的存在或位置。

  • CONNECT
    允许被授权者连接到数据库。此权限在连接启动时进行检查(除了检查 施加的任何限制)。pg_hba.conf

  • TEMPORARY
    允许在使用数据库时创建临时表。

  • EXECUTE
    允许调用函数或过程,包括使用在函数之上实现的任何运算符。这是适用于函数和过程的唯一特权类型。

  • USAGE
    对于存储过程,允许使用存储过程创建函数。这是适用于存储过程的唯一特权类型。
    对于模式,允许访问模式中包含的对象(假设还满足对象自己的权限要求)。从本质上讲,这允许被授权者在模式中“查找”对象。如果没有此权限,仍然可以查看对象名称,例如,通过查询系统目录。此外,在撤消此权限后,现有会话可能具有以前执行过此查找的语句,因此这不是防止对象访问的完全安全的方法。
    对于序列,允许使用 currval 和nextval 函数。
    对于类型和域,允许在创建表、函数和其他架构对象时使用类型或域。(请注意,此权限不控制该类型的所有“用法”,例如查询中出现的类型的值。它仅阻止创建依赖于类型的对象。此权限的主要用途是控制哪些用户可以创建对类型的依赖关系,这可能会阻止所有者以后更改类型。
    对于外部数据包装器,允许使用外部数据包装器创建新服务器。
    对于外部服务器,允许使用服务器创建外部表。受赠者还可以创建、更改或删除与该服务器关联的自己的用户映射。

SET
允许在当前会话中将服务器配置参数设置为新值。(虽然可以在任何参数上授予此权限,但除了通常需要超级用户权限才能设置的参数外,它没有任何意义。

ALTER SYSTEM
允许使用 ALTER SYSTEM 命令将服务器配置参数配置为新值。

下表使用上面显示的缩写总结了每种类型的 SQL 对象可用的权限。它还显示了可用于检查每个对象类型的权限设置的 psql 命令。

对象类型所有权限默认PUBLIC权限psql的命令
DATABASECTcTc\l
DOMAINUU\dD+
FUNCTION或PROCEDUREXX\df+
FOREIGN DATA WRAPPERU没有\dew+
FOREIGN SERVERU没有\des+
LANGUAGEUU\dL+
LARGE OBJECTrw没有\dl+
PARAMETERsA没有\dconfig+
SCHEMAUC没有\dn+
SEQUENCErwU没有\dp
TABLE(和类似表格的对象)arwdDxt没有\dp
Table columnarwx没有\dp
TABLESPACEC没有\db+
TYPEUU\dT+

已授予特定对象的权限显示为条目列表,其中每个条目描述由特定授予者授予的一个被授权者的权限。
例如,假设用户创建表并执行以下操作:miriam mytable

GRANT SELECT ON mytable TO PUBLIC;
GRANT SELECT, UPDATE, INSERT ON mytable TO admin;
GRANT SELECT (col1), UPDATE (col1) ON mytable TO miriam_rw;

然后 psql 的命令将显示:\dp

=> \dp mytableAccess privilegesSchema |  Name   | Type  |   Access privileges   |   Column privileges   | Policies
--------+---------+-------+-----------------------+-----------------------+----------public | mytable | table | miriam=arwdDxt/miriam+| col1:                +||         |       | =r/miriam            +|   miriam_rw=rw/miriam ||         |       | admin=arw/miriam      |                       |
(1 row)

如果给定对象的“访问权限”列为空,则表示该对象具有默认权限(即PUBLIC,其在相关系统目录中的权限条目为 null)。如上所述,默认权限始终包括所有者的所有权限,并且可以包括一些取决于对象类型的权限。第一个GRANT或者REVOKE将实例化默认权限(例如miriam=arwdDxt/miriam),然后根据指定的请求修改它们。同样,条目仅针对具有非默认权限的列显示在“列权限”中。(注意:为此,“默认权限”始终表示对象类型的内置默认权限。其权限受命令影响的对象将始终显示一个显式权限条目ALTER DEFAULT PRIVILEGES,其中包括ALTER的效果。

修改表所有者

修改或销毁对象的权利是作为对象所有者所固有的,本身不能授予或撤销。(但是,与所有特权一样,该权限可以由拥有角色的成员继承;

例如ALTER,可以使用对象的适当类型的命令将对象分配给新的所有者

ALTER TABLE table_name OWNER TO new_owner;

超级用户总是可以做到这一点;普通角色只有在既是对象的当前所有者(或继承了拥有角色的特权)又能够担任新的拥有角色时才能执行此操作。

分配授权

要分配特权,请使用 GRANT 命令。例如,如果是现有角色,并且是现有表,则可以使用以下方式授予更新表的权限:

GRANT UPDATE ON accounts TO joe;

写入代替特定权限将授予与对象类型相关的所有权限。

GRANT ALL ON accounts TO joe;

特殊的“角色”名称可用于向系统上的每个角色授予特权。此外,当数据库有许多用户时,可以设置“组”角色来帮助管理权限 — 有关详细信息。

撤销授权

要撤消以前授予的权限,请使用适当命名的 REVOKE 命令:

REVOKE ALL ON accounts FROM PUBLIC;

通常,只有对象的所有者(或超级用户)才能授予或撤消对对象的权限。但是,可以“使用授予选项”授予特权,这使接收者有权依次将其授予其他人。如果授予选项随后被撤销,则所有从该接收者(直接或通过一系列授予)获得特权的人都将失去该特权。

对象的所有者可以选择撤消自己的普通权限,例如,将表设置为对自己和其他人只读。但所有者始终被视为持有所有授予选项,因此他们始终可以重新授予自己的权限。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/592329.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c基础(二)

指针: 含义:是一个值,一个值代表着一个内存地址,类似于存放路径 * 运算符 : 1 字符*表示指针 作用:通常跟在类型关键字的后面,表示指针指向的是什么类型的值 int * foo, * bar;声明指针后会…

Jenkins部署项目

一.安装jenkins 1.1进入jenkins官网下载jenkins war包,上传到服务器/usr/local目录。 1.2执行启动jenkins命令,(注意jenkins版本需要的jdk版本) /usr/local/java11/bin/java -Djava.awt.headlesstrue -jar /usr/local/jenkins.wa…

使用sdf文件+urdf文件模拟机器人示例(不用把urdf转sdf)

gazebo版本&#xff1a;harmonic&#xff1b; <launch> <group> <let name"robot_description" value"$(command xacro $(find-pkg-share gazebo_pkg)/urdf/total.xacro)"/> <node pkg"rviz2" exec"rviz2" name…

fastApi 项目

参考&#xff1a; 中文文档&#xff1a;FastAPI API接口开发其实特简单&#xff0c;Python FastApi Web 框架教程来了_根据接口文档用fastapi开发接口-CSDN博客 Python框架篇(1):FastApi-快速入门 - 知乎 官方示例目录结构 更大的应用 - 多个文件 - FastAPI . ├── app …

[讲座] - 闲聊工业设计

1&#xff0c;工业设计相关的学科分类 2&#xff0c;工业设计的职业发展路线 3&#xff0c;工业设计师的成名人物 4&#xff0c;设计了可口可乐的Loewy 可口可乐的瓶子&#xff0c;无论白天晚上还是瓶子被打碎&#xff0c;都能认出这个是可口可乐的瓶子。 草图参照了可可豆&am…

深度生成模型之GAN优化目标设计与改进 ->(个人学习记录笔记)

文章目录 深度生成模型之GAN优化目标设计与改进原始GAN优化目标的问题1. JS散度度量问题2. 梯度问题 优化目标的设计与改进1. 最小二乘损失GAN2. Energy-based GAN(EBGAN)3. Wasserstein GAN4. WGAN-GP5. Boundary Equilibrium GAN(BEGAN)6. Loss Sensitive GAN7. Relativeisti…

Cuk、Zeta和Sepic开关电源拓扑结构

Cuk、Zeta和Sepic变换器,三种拓扑结构大致类似。不同点在于电感和二极管&#xff0c;MOS管的位置关系的变化。 Cuk电源是一种非隔离的直流电源转换器&#xff0c;其基本结构包括输入滤波电容、开关管、输入电感、输出电感和输出电容等元件。Cuk电路可以看作是Boost和Buck电路的…

基于双闭环PI和SVPWM的PMSM控制器simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 双闭环PI控制器设计 4.2 SVPWM技术 4.3 控制系统实现 5.完整工程文件 1.课题概述 基于双闭环PI和SVPWM的PMSM控制器simulink建模与仿真。系统包括逆变桥、PMSM、park变换、clark变换、SVPWM、PI控…

解决电脑访问共享文件问题:“无法访问。你可能没有权限使用网络资源。请与这台服务器的......”

文章目录 1. 问题2. 解决方法 1. 问题 2. 解决方法 Win R 键入 gpedit.msc在弹出的窗口,展开左侧目录树至安全选项,如图。( 计算机配置-Windows设置:安全设置-本地策略-安全选项)

从0开始python学习-36.pytest中yaml的基本数据结构及锚点引用

目录 1.数据类型 1.写入格式 1. 对象&#xff08;字典&#xff09;&#xff1a;键:(空格)值 2. 数组&#xff08;列表&#xff09;&#xff1a;它是使用一组横线"-"开头 2. 嵌套形式 1. 列表中的字典 2. 字典中的字典 3. 字典中的列表 4. 同时有列表和字典 …

2023我的编程之路

你的编程学习经历和成长过程&#xff1a; 在我探索编程世界的旅程中&#xff0c;我深刻地认识到&#xff0c;编程不仅仅是一种技术&#xff0c; 是一种思维方式&#xff0c; 一种解决问题的方法。希望通过分享我的编程学习体验&#xff0c;能够启发更多的人看到编程的魅力和价值…

克隆clone github上某个项目的子目录

有时会遇到只需要克隆github某个项目的子目录&#xff0c;此时可以使用以下方法实现&#xff1a; 需求示例&#xff1a; 现需要克隆&#xff1a;https://github.com/SingleZombie/DL-Demos项目中的ddim项目 注&#xff1a;ddim项目的地址为&#xff1a;https://github.com/Sing…

lenovo联想小新Pro-13 2020 Intel IML版笔记本电脑(82DN)原装出厂Win10系统镜像

链接&#xff1a;https://pan.baidu.com/s/1bJpfXudYEC7MJ7qfjDYPdg?pwdjipj 提取码&#xff1a;jipj 原装出厂Windows10系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、联想电脑管家等预装程序 所需要工具&#xff1a;16G或以上的U盘 文件格式&a…

【ps】如何给人偶添加衣服

使用PS工具扣出人物 使用编辑-变形-操控变型 、

java spring boot 获取resource目录下的文档

主要代码 String filePath"templates/test.xls" ClassPathResource classPathResource new ClassPathResource(filePath); InputStream inputStream classPathResource.getInputStream();目录 主要目录存放再这 代码案例 public void downloadTemplate( HttpS…

数据库云平台新数科技完成B轮融资,打造全链路智能化数据库云平台

数据库云平台软件厂商「北京新数科技有限公司」&#xff08;以下简称「新数科技」&#xff09;已于2023年完成B1轮和B2轮融资&#xff0c;分别由渤海创富和彬复资本投资&#xff1b;义柏资本担任本轮融资独家财务顾问。 新数科技成立于2014年&#xff0c;当前产品矩阵包括数据库…

一起玩儿物联网人工智能小车(ESP32)——23. 变量与函数(一)

摘要&#xff1a;本文介绍变量和函数的基本知识 经过一个阶段的学习&#xff0c;大家对程序开发也有了一个初步的了解。这只能说是刚刚开始&#xff0c;所能实现的功能还非常的有限。接下来就是拓展一下大家的基本开发技能。 在前面的开发中&#xff0c;大家如果认真的练习并且…

kotlin foreach 循环

java中的foreach循环也使用于kotlin &#xff0c;先回顾下java里面的foreach循环 java foreach循环格式 for(元素类型t 元素变量x : 遍历对象obj){引用了x的语句;} 例如&#xff1a; int[] intary {1,2,3,4};for (int a: intary) {Log.d("intary", String.value…

模拟控制方式(PWM)

引言 PWM&#xff08;脉冲宽度调制&#xff09;是一种常见的模拟控制方式&#xff0c;通过调节脉冲宽度来控制功率输出的占空比&#xff0c;从而实现模拟信号的传输和控制。在许多领域中&#xff0c;PWM都得到了广泛的应用&#xff0c;如电机控制、LED调光、音频控制等。本文将…

关于this.router 和this.route的总结

this.router 和this.route这2个东西一直在用可是我还是迷迷糊糊的不知道啥啥意思&#xff0c;尤其是idea的提示功能&#xff0c;总是让我一个回车就弄错了。 总结一波&#xff1a; 概述 this.$router(路由实例) : 是VueRouter的实例.包含了很多属性和对象&#xff08;比如 h…