暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase8a--权限管理

原创 夏日初熏 2024-03-19
691

前言

GBase 8a的权限管理是其数据库系统中的一个关键组成部分,它确保了数据库的安全性和稳定性,同时允许管理员根据实际需求,精确地控制不同用户对数据库资源的访问和操作。

首先,权限管理的重要性在于它可以帮助管理员规划不同数据库用户的职责,并为他们分配适当的操作权限。这样做可以避免未经授权的访问和操作,减少数据泄露和损坏的风险。

在GBase 8a中,权限管理涉及多个层面,包括全局级、过程级、数据库级、列级和表级等。每个层面的权限都有其特定的作用域和限制,管理员可以根据需要为用户分配不同层面的权限。

一、grant和revoke语法介绍
GRANT priv_type1,priv_type2... ON priv_level to username/rolename;

REVOKE priv_type1,priv_type2...ON priv_level from username/rolename;

priv_type:权限类型

priv_level:权限级别

二、权限类型和级别
1、权限级别:gbase8a支持全局级,vc级,库级,表级,列级;

数据库权限分为:数据库操作类权限、数据操作类权限、存储过程和自定义函数执行权限、数据查看类权限、数据库管理类权限(包括了用户管理)。

2、权限类型:gbase8a支持的权限类型如下表所示:

权限

意义

ALL

设置除REVOKE OPTION之外的所有简单的权限

select

允许查看表数据

insert

允许插入表数据

update

允许修改表数据

delete

允许修改表行数据

create

允许创建库表

drop

允许删除库/表/视图,包括truncate

alter

允许修改表结构(create,drop)

index

允许创建和删除索引

reload

允许执行flush

Create temporary tables

允许创建临时表

Lock tables

允许对拥有select权限的表锁定

Revoke option

管理权限的权限

process

允许查看实例进程信息

super

允许进行一系列的数据库管理的命令,包括kill和set 命令

Show databases

显示数据库

Create view

创建视图

Show view

允许查看创建的视图

unmask

允许不受数据脱敏限制

Create routine

允许创建存储过程/函数

Alter  routine

允许修改或删除存储过程/函数

execute

允执行存储过程/函数

Create user

创建/修改/删除/重命名user和user

event

查看/创建/修改/删除事件

trigger

查看/创建/修改/删除触发事件

FiLE

允许使用导出和加载数据

Shutdown

允许使用gbaseadmin shutdown

usage

用于连接登录数据库

三、给用户授予权限

grant all on *.*.* to user user1;
grant create,select,insert,alter on *.*.* to user2;   #全局级
grant create,select,execute,create routine on vc1.*.* to  user3; #集群带vc
grant create,select,delete,insert,drop on test.* to  user4; #库级
grant create,select,create view,show view,insert,drop on vc1.test.t1 to user5; #表级
grant select,update(a),insert(i) on vc1.test.t1 to  user6;     #列级 

四、回收用户权限
回收用户权限示例:

 revoke all   on *.*.* from user user1;
 revoke create,select,insert,alter on *.*.* from  user2;   #全局级
 revoke create,select,execute,create routine on vc1.*.* from  user3; #vc级
 revoke create,select,delete,insert,drop on test.*  from user4; #库级
 revoke create,select,create view,show view,insert,drop on vc1.test.t1 from  user5; #表级
 revoke select,update(a),insert(i) on vc1.test.t1 from  user6;#列级  

五、给用户组授予权限
用户组:设置用户归属的用户组,用户组的权限会影响到该用户组的权限鉴定。即用户拥有用户组被授予的权限。

前提:创建用户组,设置用户归属的用户组,sql执行如下:

create role role1;
grant user1 to role1;
grant role1 to user1;
grant select on *.*.* to role1;
show grants for user1;



六、回收用户组权限
回收用户组权限示例:

revoke select on *.*.* from role1;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论