返回首页

gbase数据、南大通用产品文档:GBase8sDATASKIP 配置参数

更新日期:2024年09月11日

使用 DATASKIP 配置参数来控制在事务处理期间,数据库服务器是否跳过不可用的
dbspace。
onconfig.std 值
未设定。不跳过 dbspace。

请参阅“用法”部分。
生效
编辑 onconfig 文件并重启数据库服务器之后。
当您通过运行 onspaces -f 命令在 onconfig 文件中动态地重置该值时。
您运行带有 set dataskip 参数的 SQL 管理 API task() 或 admin() 函数之后。
用法
在查询期间无论何时只要数据库服务器跳过 dbspace,就会返回警告。
请慎重启用 DATASKIP 配置参数,因为结果总会有问题。仅在下列情况下启用该参数:
 您可接受折中的事务完整性。
 您可确定事务的完整性未作出让步,这样做困难又费时。
DATASKIP 配置参数的语法

表 1. DATASKIP 配置参数值的选项.

描述
ALL
跳过所有不可用分片。
OFF
处理所有分片,包括不可用分片。
ON
dbspace_name 值指定一个或多个跳过的 dbspace,用逗号分隔。
应用程序可使用 SQL 语句 SET DATASKIP 来取代 DATASKIP 配置参数的值。
对于 GBase 8s ESQL/C,以前保留的 SQLCA 警告标志 sqlwarn.sqlwarn7 设置为 W。

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 53 -

功能描述

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
926
创建角色。
角色是拥有数据库对象和权限的实体。
在不同的环境中角色可以认为是一个用户,
一个
组或者兼顾两者。
注意事项

在数据库中添加一个新角色,角色无登录权限。

创建角色的用户必须具备CREATE ROLE 的权限或者是系统管理员。
语法格式
CREATE ROLE role_name [ [ WITH ] option [ ... ] ] [ ENCRYPTED | UNENCRYPTED ]
{ PASSWORD | IDENTIFIED BY } { 'password' [EXPIRED] | DISABLE };
其中角色信息设置子句option 语法为:
{SYSADMIN | NOSYSADMIN}
| {MONADMIN | NOMONADMIN}
| {OPRADMIN | NOOPRADMIN}
| {POLADMIN | NOPOLADMIN}
| {AUDITADMIN | NOAUDITADMIN}
| {CREATEDB | NOCREATEDB}
| {USEFT | NOUSEFT}
| {CREATEROLE | NOCREATEROLE}
| {INHERIT | NOINHERIT}
| {LOGIN | NOLOGIN}
| {REPLICATION | NOREPLICATION}
| {INDEPENDENT | NOINDEPENDENT}
| {VCADMIN | NOVCADMIN}
| {PERSISTENCE | NOPERSISTENCE}
| CONNECTION LIMIT connlimit
| VALID BEGIN 'timestamp'

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
927
| VALID UNTIL 'timestamp'
| RESOURCE POOL 'respool'
| USER GROUP 'groupuser'
| PERM SPACE 'spacelimit'
| TEMP SPACE 'tmpspacelimit'
| SPILL SPACE 'spillspacelimit'
| NODE GROUP logic_cluster_name
| IN ROLE role_name [, ...]
| IN GROUP role_name [, ...]
| ROLE role_name [, ...]
| ADMIN role_name [, ...]
| USER role_name [, ...]
| SYSID uid
| DEFAULT TABLESPACE tablespace_name
| PROFILE DEFAULT
| PROFILE profile_name
| PGUSER
参数说明

role_name
角色名称。
取值范围:
字符串,
要符合标识符的命名规范,
且最多为63 个字符。
若超过63 个字符,
数据库会截断并保留前63 个字符当做角色名称。在创建角色时,数据库的时候会给出提示
信息。
说明:标识符需要为字母、下划线、数字(0-9)或美元符号($)
,且必须以字
母(a-z)或下划线(_)开头。

password

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
928
登录密码。
密码规则如下:
密码默认不少于8 个字符。
不能与用户名及用户名倒序相同。
至少包含大写字母(A-Z)
、小写字母(a-z)
、数字(0-9)
、非字母数字字符(限定为
~!@#$%^&*()-_=+\|[{}];:,<.>/?)四类字符中的三类字符。
密码也可以是符合格式要求的密文字符串,
这种情况主要用于用户数据导入场景,
不推
荐用户直接使用。如果直接使用密文密码,用户需要知道密文密码对应的明文,并且保证明
文密码复杂度,数据库不会校验密文密码复杂度,直接使用密文密码的安全性由用户保证。
创建角色时,应当使用双引号或单引号将用户密码括起来。
取值范围:不为空的字符串。

EXPIRED
在创建用户时可指定EXPIRED 参数,即创建密码失效用户,该用户不允许执行简单查
询和扩展查询。只有在修改自身密码后才可正常执行语句。

DISABLE
默认情况下,用户可以更改自己的密码,除非密码被禁用。要禁用用户的密码,请指定
DISABLE。禁用某个用户的密码后,将从系统中删除该密码,此类用户只能通过外部认证
来连接数据库,例如:kerberos 认证。只有管理员才能启用或禁用密码。普通用户不能禁用
初始用户的密码。要启用密码,请运行ALTER USER 并指定密码。

ENCRYPTED | UNENCRYPTED
控制密码存储在系统表里的口令是否加密。按照产品安全要求,
密码必须加密存储,所
以,
UNENCRYPTED 在GBase 8c 中禁止使用。
因为系统无法对指定的加密口令字符串进行
解密,
所以如果目前的口令字符串已经是用SHA256 加密的格式,则会继续照此存放,
而不

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
929
管是否声明了ENCRYPTED 或UNENCRYPTED。这样就允许在dump/restore 的时候重新加
载加密的口令。

SYSADMIN | NOSYSADMIN
决定一个新角色是否为“系统管理员”,
具有SYSADMIN 属性的角色拥有系统最高权限。
缺省为NOSYSADMIN。

MONADMIN | NOMONADMIN
定义角色是否是监控管理员。
缺省为NOMONADMIN。

OPRADMIN | NOOPRADMIN
定义角色是否是运维管理员。
缺省为NOOPRADMIN。

POLADMIN | NOPOLADMIN
定义角色是否是安全策略管理员。
缺省为NOPOLADMIN。

AUDITADMIN | NOAUDITADMIN
定义角色是否有审计管理属性。
缺省为NOAUDITADMIN。

CREATEDB | NOCREATEDB
决定一个新角色是否能创建数据库。
新角色没有创建数据库的权限。
缺省为NOCREATEDB。

USEFT | NOUSEFT

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
930
该参数为保留参数,暂未启用。

CREATEROLE | NOCREATEROLE
决定一个角色是否可以创建新角色(也就是执行CREATE ROLE 和CREATE USER)

一个拥有CREATEROLE 权限的角色也可以修改和删除其他角色。
缺省为NOCREATEROLE。

INHERIT | NOINHERIT
这些子句决定一个角色是否“继承”它所在组的角色的权限。不推荐使用。

LOGIN | NOLOGIN
具有LOGIN 属性的角色才可以登录数据库。一个拥有LOGIN 属性的角色可以认为是
一个用户。
缺省为NOLOGIN。

REPLICATION | NOREPLICATION
定义角色是否允许流复制或设置系统为备份模式。REPLICATION 属性是特定的角色,
仅用于复制。
缺省为NOREPLICATION。

INDEPENDENT | NOINDEPENDENT
定义私有、独立的角色。具有INDEPENDENT 属性的角色,管理员对其进行的控制、
访问的权限被分离,具体规则如下:
未经INDEPENDENT 角色授权,系统管理员无权对其表对象进行增、删、查、改、拷
贝、授权操作。
若将私有用户表的相关权限授予其他非私有用户,系统管理员也会获得同样的权限。
未经INDEPENDENT 角色授权,系统管理员和拥有CREATEROLE 属性的安全管理员
无权修改INDEPENDENT 角色的继承关系。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
931
系统管理员无权修改INDEPENDENT 角色的表对象的属主。
系统管理员和拥有CREATEROLE 属性的安全管理员无权去除INDEPENDENT 角色的
INDEPENDENT 属性。
系统管理员和拥有CREATEROLE 属性的安全管理员无权修改INDEPENDENT 角色的
数据库口令,INDEPENDENT 角色需管理好自身口令,口令丢失无法重置。
管理员属性用户不允许定义修改为INDEPENDENT 属性。

VCADMIN | NOVCADMIN
该版本没有实际意义。

PERSISTENCE | NOPERSISTENCE
定义永久用户。
仅允许初始用户创建、
修改和删除具有PERSISTENCE 属性的永久用户。

CONNECTION LIMIT
声明该角色可以使用的并发连接数量。
须知:
系统管理员不受此参数的限制。
connlimit 数据库主节点单独统计,GBase 8c 整体的连接数= connlimit * 当前正常数据
库主节点个数。
取值范围:整数,>=-1,缺省值为-1,表示没有限制。

VALID BEGIN
设置角色生效的时间戳。如果省略了该子句,角色无有效开始时间限制。

VALID UNTIL
设置角色失效的时间戳。如果省略了该子句,角色无有效结束时间限制。

RESOURCE POOL
设置角色使用的resource pool 名称,该名称属于系统表:pg_resource_pool。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
932

PERM SPACE
设置用户使用空间的大小。

TEMP SPACE
设置用户临时表存储空间限额。

SPILL SPACE
设置用户算子落盘空间限额。

IN ROLE
新角色立即拥有IN ROLE 子句中列出的一个或多个现有角色拥有的权限。
不推荐使用。

IN GROUP
IN GROUP 是IN ROLE 过时的拼法。不推荐使用。

ROLE
ROLE 子句列出一个或多个现有的角色,
它们将自动添加为这个新角色的成员,拥有新
角色所有的权限。

ADMIN
ADMIN 子句类似ROLE 子句,不同的是ADMIN 后的角色可以把新角色的权限赋给其
他角色。

USER
USER 子句是ROLE 子句过时的拼法。

SYSID
SYSID 子句将被忽略,无实际意义。

DEFAULT TABLESPACE
DEFAULT TABLESPACE 子句将被忽略,无实际意义。

PROFILE

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
933
PROFILE 子句将被忽略,无实际意义。

PGUSER
当前版本该属性没有实际意义,仅为了语法的前向兼容而保留。
示例
--创建一个角色,名为manager,密码为xxxxxxxxx。
gbase=#CREATE ROLE manager IDENTIFIED BY 'xxxxxxxxx';
--创建一个角色,从2015 年1 月1 日开始生效,到2026 年1 月1 日失效。
gbase=#CREATE ROLE miriam WITH LOGIN PASSWORD 'xxxxxxxxx' VALID BEGIN
'2015-01-01' VALID UNTIL '2026-01-01';
--修改角色manager 的密码为abcd@123。
gbase=#ALTER ROLE manager IDENTIFIED BY 'abcd@123' REPLACE 'xxxxxxxxx';
--修改角色manager 为系统管理员。
gbase=#ALTER ROLE manager SYSADMIN;
--删除角色manager。
gbase=#DROP ROLE manager;
--删除角色miriam。
gbase=#DROP ROLE miriam;
相关命令
SET ROLE,ALTER ROLE,DROP ROLE,GRANT

函数说明
将char 中包含的from_string 字符替换为to_string 中的相应字符,然后返回替换
后的字符串。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
726

to_string 不能省略。

如果from_string 比to_string 长,那么在from_string 中而不在to_string 中的
额外字符将从char 中删除,因为它们没有相应的替换字符。

如果TRANSLATE 中的任何参数为NULL,则结果也是NULL。
示例
示例1:from_string 长度长于to_string,在from_string 中而不在to_string 中的额
外字符将从char 中删除。
gbase> SELECT TRANSLATE('123abc','2dc','4e') FROM dual;
+--------------------------------+
| TRANSLATE('123abc','2dc','4e') |
+--------------------------------+
| 143ab
|
+--------------------------------+
1 row in set
说明
因为from_string 和to_string 的位置是一一对应的,2 对应4,d 对应
e。
c 没有对应的值,所以c 会被删除。字符里的2 会替换为4,d 因为
字符串里没有,不做替换,c 由于没有对应的替换字符,所以字符串里的c 会
被删除。因此输出结果是143ab。
示例2:from_string 长度长于to_string,在from_string 中而不在to_string 中的额
外字符将从char 中删除。
gbase> SELECT TRANSLATE('13579abc','13a','24') FROM dual;
+----------------------------------+
| TRANSLATE('13579abc','13a','24') |
+----------------------------------+
| 24579bc
|
+----------------------------------+
1 row in set
示例3:from_string 为NULL,返回值为NULL。
gbase> SELECT TRANSLATE('23',NULL,'a') FROM dual;
+--------------------------+

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
727
| TRANSLATE('23',NULL,'a') |
+--------------------------+
| NULL
|
+--------------------------+
1 row in set