GBase 8s 安全性(3)- 自主访问控制

GBase8s 提供了灵活的自主访问控制(DAC),允许用户对数据库对象设定不同权限,并可转授给其他用户。权限包括数据库、表、字段等的SELECT、UPDATE、INSERT、DELETE等操作。数据库级别权限分为CONNECT、RESOURCE和DBA,依次递增。CONNECT允许基本操作,RESOURCE可创建表和索引,DBA则包含所有权限并能管理用户和数据库对象。
摘要由CSDN通过智能技术生成

 GBase 8s 提供的自主访问控制(Discretionary Access Control, DAC)功能非常灵活,用户可对不同的数据对象设定不同的访问权限,同时,不同的用户对同一数据对象也有不同的权限。用户可以将其拥有的访问权限转授给其他用户。自主访问控制是基于用户的,由数据对象的拥有者决定哪些用户可以对该数据对象进行访问,访问权限完全由数据对象的拥有者决定。

       用户对数据对象的操作权利被称为权限,用户权限是由数据库对象(库、表、字段等)和操作类型(DDL、DML 等)两个要素组成,对用户权限的定义就是定义该用户可以对哪些数据库对象进行哪些类型的操作。

       该功能不受配置参数控制。

       基本语法 

       GBase 8s 的权限赋予语法如下: 

       TO Options 子句语法如下:

   

   收回权限的语法如下: 

     

 FROM Options 子句语法如下:

       说明如下:

       1) GBase 8s 赋权和收回权限关键字;

       2) 数据库级别权限授权和收回;

       3) 角色及默认角色授予和收回;

       4) 基于标签的访问控制(LBAC)相关设置;

       5) 表级(字段级)权限授权的授予和收回;

       6) SPL(存储过程、函数、触发器)授权和收回;

       7) 自定义数据类型授权的授权和收回;

       8) 序列(Sequence)的授权和收回。

       权限划分

       在 GBase 8s 中,可以对数据库、表、字段、视图、SPL(存储过程、函数、触发器)、分片等数据库对象进行权限的授予和收回操作,如下图所示: 

       其中,数据库的权限是其他权限的基础,用户只有拥有数据库的权限后才能访问表、视图、存储过程等其他数据库资源。

       数据库以及其中的每个表、视图、存储过程和自定义数据类型都具有所有者。对象的所有者通常是创建该对象的人员。数据库对象的所有者默认对该对象具有所有权限。

       数据库不同元素的权限如下表所示:

对象

权限

Database 

Connect, resource, DBA 

Table 

Select, update, insert, delete, index, alter, references 

Column 

Select, update, references 

Fragment 

Insert, update, delete

View

Select, insert, delete, update 

Sequence 

Select, alter

UDT 

Usage, under 

SPL 

Execute 

       数据库级别权限

       对于所有有权使用指定数据库的用户都必须赋予其数据库级别的用户权限。在GBase 8s 中,数据库级别的用户权限有三种,按权限从低到高排列依次为:CONNECT、RESOURCE、DBA。

       1. CONNECT

       这是级别最低的一种数据库级别用户权限。拥有该权限的用户可以执行SELECT、INSERT、UPDATE 和 DELETE 语句,针对数据表执行存储过程,创建数据表的视图,创建临时表。

       具有 connect 特权的任何用户都可以执行以下的功能:

       • 使用语句连接数据库

       • 执行 Select, Insert, Update, Delete 语句(如果用户有必要的表级别权限)

       • 创建视图,如果用户对基本表有 select 权限

       • 创建同义词

       • 创建临时表以及创建临时表的索引

       • 改变或删除表或索引,如果用户拥有表或者索引

       • 对表或者视图授予特权,如果用户拥有表

       2. RESOURCE

       拥有该权限的用户除拥有 CONNECT 的全部权限外,还可以创建新表,并可以对自己创建的表执行 ALTER 和 DROP 操作,并执行创建索引,执行自定义函数(UDR)等操作。

       除了具有 connect 特权的功能,Resource 特权的持有者可执行以下的功能:

       • 创建新表

       • 创建新索引

       • 创建新 UDR

       • 创建新数据类型

       3. DBA

       数据库的建立者和拥有者被自动受于这种权限。拥有该权限的用户除拥有CONNECT、RESOURCE 的全部权限外,还可以对其他用户授予或解除 CONNECT、RESOURCE 和 DBA 权限,可以对其他用户创建的表和视图执行 DROP 和 ALTER 操作。也可以对数据库执行 DROP、START、STOP 和 RECOVER 操作。

       拥有 Resource 特权的所有能力,并且能执行以下的附加操作:

       • 将任何数据库特权(包括 DBA 特权)授予其他用户 

       • 将任何表级别特权授予其他用户和角色

       • 创建表,视图和索引,指定其他用户作为这些对象的所有者

       • 改变,删除或者重命名数据库对象,不管谁拥有它们

       • 插入,删除或更新除 systables 之外的任何系统目录表的行

       数据库级别权限表 

权限

Connect

Resource

DBA

Select, insert, update, delete, use temporary tables, and use views. 

yesyesyes

Create, alter, drop, and index own tables. 

no

yes

yes

Grant, revoke, drop other owned tables, and

start and stop server. 

nonoyes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值