控制权和访问权分离

可获得性

本特性自openGauss 1.1.0版本开始引入。

特性简介

支持控制权和访问权分离。

客户价值

针对管理员用户,表对象的控制权和访问权要能够分离,提高普通用户数据安全性。

特性描述

对于有多个业务部门,各部门间使用不同的数据库用户进行业务操作,同时有一个同级的数据库维护部门使用数据库管理员进行维护操作的场景下,业务部门可能希望在未经授权的情况下,管理员用户只能对各部门的数据进行控制操作(DROP、ALTER、TRUNCATE),但是不能进行访问操作(INSERT、DELETE、UPDATE、SELECT、COPY)。即针对管理员用户,表对象的控制权和访问权要能够分离,提高普通用户数据安全性。

三权分立情况下,管理员对其他用户放在属于各自模式下的表无权限。但是,这种无权限包含了无控制权限,因此不能满足上面的诉求。为此,openGauss提供了私有用户方案。即在非三权分立模式下,创建具有INDEPENDENT属性的私有用户。具备CREATEROLE权限或者是系统管理员权限的用户可以创建私有用户或者修改普通用户的属性为私有用户,普通用户也可以修改自己的属性为私有用户。

  1. openGauss=# CREATE USER user_independent WITH INDEPENDENT IDENTIFIED BY "1234@abc";

针对该用户的表对象,系统管理员在未经其授权前,只能进行控制操作(DROP、ALTER、TRUNCATE),无权进行INSERT、DELETE、SELECT、UPDATE、COPY、GRANT、REVOKE、ALTER OWNER操作。

特性增强

无。

特性约束

对于私有用户的表,需要谨慎授予其他用户对该表的trigger权限,以免其他用户利用触发器查看私有用户的数据。

若将私有用户表的相关权限授予其他非私有用户,系统管理员也会获得同样的权限。

依赖关系

无。