权限管理数据库对象的区别

权限管理数据库对象的区别

概述

官方网站:

Pg权限分为两部分。 一部分是“系统权限”或数据库用户的属性,可以授予角色或用户(两者的区别是登录权限); 一方面是对数据库对象的操作权限。 超级用户没有权限检查,其他权限采用ACL。 对于数据库对象,首先只有所有者和超级用户可以进行任何操作用户角色权限设计,其他人可以使用ACL。 在pg中,ACL模型被简化。 组和角色都是角色。 用户和角色的区别在于角色没有登录权限。

PostgreSQL通过角色来管理数据库访问权限。 我们可以将角色视为数据库用户或一组数据库用户。 角色可以拥有数据库对象用户角色权限设计,例如表和索引,也可以将这些对象的权限授予其他角色,以控制哪些用户对哪些对象拥有哪些权限。

1. 用户/角色管理

1. 创建用户/角色

1.1. 语法

注意:如果创建用户(角色)后需要连接,则需要修改两个权限控制配置文件(pg_hba.conf、pg_ident.conf)。 而创建用户(user)和创建角色(role)是一样的。 唯一的区别是用户默认可以登录,而创建的角色默认无法登录。 创建用户和角色的参数相同。

1.2. 例子

2.修改用户/角色属性

2.1. 语法

注意:option选项中的用户可以通过alter role进行修改。

2.2. 例子

3.查看用户/角色

描述:视图 pg_roles 提供了一个用于访问有关数据库角色信息的接口。 它只是 pg_authid 表的公共可读部分的视图,其中密码字段填充为空白。

2、权限管理

数据库对象在创建时会被分配一个所有者。 一般来说,所有者就是执行对象创建语句的角色。 对于大多数类型的对象,初始状态是只有所有者(或超级用户)可以对对象执行任何操作。 如果要允许其他用户使用该对象材质材料游戏素材下载 免费,则必须授予适当的权限。 PostgreSQL 中预定义了许多不同类型的内置权限,例如:SELECT、INSERT、UPDATE、DELETE、RULE、REFERENCES、TRIGGER、CREATE、TEMPORARY、EXECUTE 和 USAGE。

1. 权限说明

2. 授权,定义访问权限

3. 撤销权限

4.查看用户权限

select * from information_schema.table_privileges;

文章来源:https://www.toutiao.com/a6756202637881770504/