在数据库管理中,用户权限的控制是确保数据安全和合规性的关键。南大通用GBase 8s提供了细致的权限管理机制,本文将详细介绍如何在GBase 8s中查看和管理用户权限,帮助数据库管理员有效监控和维护数据访问的安全。

一、理解GBase 8s的权限

本节主要介绍“如何查看用户有哪些权限”,此处只简单描述GBase 8s的数据库级别和表级别权限。

数据库级别权限:

权限

介绍

connect

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

resource

拥有该权限的用户除拥有 CONNECT 的全部权限外,还可以创建新的表,并可以对自己创建的表执行 ALTER 和 DROP 操作、创建索引。

dba

数据库的建立者和拥有者被自动授予这种权限。拥有该权限的用户除拥有 RESOURCE的全部权限外,还可以对其他用户授予或解除 CONNECT、RESOURCE 和 DBA 权限

表级别权限:

权限

介绍

select

表示用户可以查询表中的记录(该权限可以扩展到指定字段)。

delete

该权限表示用户可以删除表中的数据。

insert

该权限表示用户可以向表中增添新的数据。

update

表示用户可以修改表中的记录。

二、查看库级权限

当前库下查询,查看哪些用户对该库有什么样的权限sysusers表,usertype字段(C=Connect、R=Resource、D=DBA)

> database test;
--此时,gbasedbt用户对test库有“D”(DBA)权限
> select * from sysusers;
username  gbasedbt
usertype  D
priority  9
password
defrole
1 row(s) retrieved.
--给用户user1赋权(假设user1)
> grant connect to user1;
Permission granted.
--此时,gbasedbt用户对test库有“D”(DBA)权限,user1用户对test库有“C”(connect)权限
> select * from sysusers;
username  gbasedbt
usertype  D
priority  9
password
defrole
username  user1
usertype  C
priority  5
password
defrole
2 row(s) retrieved.

三、查看表级权限

当前库下查询 
test库中,用户user1对表t1有哪些表级权限

> database test;
> create table t1(id int,name char(20));
--给user1用户赋权
> grant select on t1 to user1;
Permission granted.
--执行如下SQL,tabauth字段显示的‘s’说明有select权限
> select * from systabauth where tabid=(select tabid from systables where tabname='t1')and grantee='user1';
grantor  gbasedbt
grantee  user1
tabid    100
tabauth  s--------
1 row(s) retrieved.
--再次给user1用户赋权
> grant insert on t1 to user1;
Permission granted.
--执行如下SQL,tabauth字段显示的‘s’‘i’说明有select和insert权限
> select * from systabauth where tabid=(select tabid from systables where tabname='t1')and grantee='user1';
grantor  gbasedbt
grantee  user1
tabid    100
tabauth  s--i-----
1 row(s) retrieved.

四、sysusers表介绍

字段

类型

介绍

username

char(32)

用户/角色名

usertype

char(1)

Connect

Resource

=D BA

G = 角色

U = 缺省角色

priority

smallint

保留字段

password

char(16)

保留字段

defrole

char(32)

缺省角色的名称

五、systabauth表介绍

字段

类型

介绍

grantor

char(32)

特权授权者的名称

grantee

char(32)

特权被授权者的名称

tabid

integer

标识编号(systables.tabid)

tabauth

char(9)

指定对表、视图、同义词或序列上的特权的模式:

s 或 S = Select

u 或 U = Update

* = 列级别特权

i 或 I = Insert

d 或 D = Delete

x 或 X = Index

a 或 A = Alter

r 或 R = References

n 或 N = Under 特权

通过本文的详细介绍,您应能了解GBase 8s中用户权限的查询和管理方法。合理配置和定期审查用户权限,是保障数据库数据安全的重要措施。我们希望本文能在用户权限管理方面为您提供帮助。感谢您的阅读。