返回首页

gbase数据、南大通用产品文档:GBase8s用户权限三权分立

更新日期:2024年09月11日

传统商业数据库通常定义一个超级管理员,
该管理员具有至高无上的权力,
可以操作任何的数据库功能,管理任何的数据,这便造成了特权用户缺少权力

GBase 8s V8.8 技术白皮书
南大通用数据技术股份有限公司
第33页
约束的安全隐患,这种系统机制存在的安全漏洞很难从应用的角度去规避。
GBase 8s 安全数据管理系统分权的基本安全思想是最小特权的授权原则,
对一个主体(用户)仅赋予完成预定任务所必需的最小权限。基于该安全策略,
把数据库管理系统的用户由原来单一的超级数据库管理员变成现在的三类角色:
安全管理员、审计管理员、数据管理员。它们分别承担着不同的职责,并且期
望它们三者之一应不能涉及其他两者的权力范围,从而实现整个数据库系统的
分权管理,即所谓的三权分立原则。
三类用户的具体职责分配大致如下:安全管理员主要负责完成系统的安全
(标记)管理功能,审计管理员负责完成系统的审计功能,数据管理员主要负
责完成自主访问控制(DAC)、系统维护管理等功能。这三类管理员用户之间
分工明确,各司其职,既相互制约又相互配合,共同实现数据库的安全管理功
能。
图5- 1
GBase 8s 用户权限三权分立示意图

GBase 8s V8.8 技术白皮书
第34页
南大通用数据技术股份有限公司
6
共享存储集群
GBase 8s SSC(共享存储高可用集群)采用共享磁盘方式实现计算节点高
可用,数据仅存储一份,有效利用硬件资源,避免数据重复存储问题。SSC 集
群中各节点均能对外提供服务,适合写少读多,对读性能有线性扩展需求的场
景,集群节点数最多可达128 个。SSC 具有安装简单、应用无感知、故障自动
切换、低成本等特点。

注意事项中用例
示例
示例1:“rmt:”与select_syntax 之间不能有空格。
可正确导出数据的语句:
rmt:SELECT * FROM cust INTO OUTFILE '/home/gbase/temp/cust.txt';
会报语法错误的语句:
rmt: SELECT * FROM cust INTO OUTFILE '/home/gbase/temp/cust.txt';
示例2:file_path,以及FIELD_OPTION 中的字段分隔符,字段包围符,转义标
识符等均必须用单引号“'”包围,否则无法正常导出数据。
可正确导出数据的语句:
rmt:SELECT * FROM cust INTO OUTFILE '/home/gbase/temp/cust.txt';
会报语法错误的语句:
rmt:SELECT * FROM cust INTO OUTFILE /home/gbase/temp/cust.txt;
示例3:远程导出不支持顶层查询是UNION 类查询。
会报语法错误的语句:
rmt:SELECT * FROM cust UNION SELECT * FROM product INTO

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1257
OUTFILE '/home/gbase/temp/product.txt';
ERROR 1149 (42000): (GBA-02SC-1001) SELECT INTO OUTFILE with
UNION is not supported.
示例4:远程导出的目标文件如果已经在本地存在,则不能通过select
@@error_count 来获得错误数,原因为文件是否存在由客户端判断,而
@@error_count 是服务端变量。
示例中所用的表及数据:
create table t(id int);
insert into t values(1);
导出SQL 语句:
gbase> rmt:select * from t into outfile '/home/gbase/t.txt';
Query OK, 1 row affected
gbase> rmt:select * from t into outfile '/home/gbase/t.txt';
ERROR:
Can't open file '/home/gbase/t.txt' to write. Caused by: File exists
gbase> select @@error_count;
+---------------+
| @@error_count |
+---------------+
|
0 |
+---------------+
1 row in set

sysfragments 系统目录表存储表和索引的个别分段的分段存储信息和 LOW 方式统计
信息分发。对于每个表分段或索引分段,都存在一行。
sysfragments 表具有以下列。

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 44 -

类型
解释
fragtype
CHAR(1)
指示分段对象类型的代码:
I = 原始索引分段
T = 原始表分段

tabid
INTEGER
表的唯一标识代码
indexname
VARCHAR(128)
索引的名称
colno
INTEGER
TEXT 或 BYTE 列的标识代码或滚动窗口分段数上限
partn
INTEGER
物理存储位置的标识代码
strategy
CHAR(1)
分段分布策略的类型的代码:
R = 循环分段存储策略
E = 基于表达式的分段存储策略
I = IN DBSPACE 子句指定作为分段存储策略一部分
的存储位置
N = 时间间隔(或滚动窗口)分段存储策略
N = 时间间隔分段存储策略
L = 列表分段存储策略
T = 基于表的分段存储策略
H = 表是表层次结构内的子表

location
CHAR(1)
保留供将来使用;对于本地,显示 L
servername
VARCHAR(128)
保留供将来使用
evalpos
INTEGER
分段存储列表中的分段位置。
对于按 INTERVAL 的分段存储,为指示 exprtext
字段中信息类型的以下某个值:

-1 = 时间间隔分段的数据库空间列表
-2 = 时间间隔值
-3 = 分段存储键
-4 = 滚动窗口分段

按 LIST 的分段存储也使用值 -3。


GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 45 -

类型
解释
exprtext
TEXT
分段存储策略的表达式
对于按 INTERVAL、LIST 或滚动窗口进行的分段存
储,提供与 evalpos 字段值对应的信息。

对于按 INTERVAL 或 LIST 的分段存储,提供与
evalpos 字段值对应的信息。

exprbin
BYTE
表达式的二进制版本
exprarr
BYTE
用于优化范围表达式分段存储策略中的表达式的范
围分区数据
flags
INTEGER
供内部使用
dbspace
VARCHAR(128)
存储此分段的数据库空间的名称
levels
SMALLINT
B 型树索引级别数
npused
FLOAT
对于表分段存储策略:数据页数
对于索引分段存储策略:叶子页数

对于滚动窗口表:nrows 中存储大小限制的单位数

nrows
FLOAT
对于表:分段中的行数。
对于索引:唯一键数。

对于滚动窗口表:清除策略中的存储大小上限。

clust
FLOAT
索引集群的程度;较小的数字对应较大的集群
partition
分段的名称
可匹配存储分段的 GBase 8s 数据库空间的名称,
也可以为不同名称
version
SMALLINT
更新分段统计信息时递增的数字
nupdates
FLOAT
分段的更新数
ndeletes
FLOAT
分段的删除数
ninserts
FLOAT
分段的插入数


每个分段在此表中都有一行。evalpos 和 evaltext 字段包含有关个别分段的信息。
使用按 INTERVAL 或 LIST 的分段存储创建的表和索引具有包含有关分段存储策略信
息的其他行。

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 46 -
strategy 类型 T 用于连接索引。(这是其分段存储策略与表分段存储相同的分段索
引。)
对表的分发统计信息最近一次重新计算以来,有关该表的 sysfragments 制表 DML 操
作中 nupdates、ndeletes 和 ninserts 列的信息,请参阅在 SYSDISTRIB系统目录表中具有
相同名称的三个列的描述。
在 GBase 8s 中,fragtype、tabid、indexname 和 evalpos 列上的组合索引允许重复
值。