华为云云数据库GaussDBALTER SCHEMA_云淘科技

功能描述

修改模式属性。

注意事项

只有模式的所有者或者被授予了模式ALTER权限的用户有权限执行ALTER SCHEMA命令,系统管理员默认拥有此权限。但要修改模式的所有者,当前用户必须是该模式的所有者或者系统管理员,且该用户是新所有者角色的成员。

对于除public以外的系统模式,如pg_catalog、sys等,只允许初始用户修改模式的所有者。修改系统自带模式的名称可能会导致部分功能不可用甚至影响数据库正常运行,默认情况下不允许修改系统自带模式的名称,考虑到前向兼容性,仅允许当系统在启动或升级过程中或参数allow_system_table_mods为on时修改。
只有初始用户可以将schema的属主修改为运维管理员,其他用户无法将schema的属主修改为运维管理员。

语法格式

修改模式的防篡改属性。

1
ALTER SCHEMA schema_name { WITH | WITHOUT } BLOCKCHAIN

修改模式的名称。

1
2
ALTER SCHEMA schema_name 
    RENAME TO new_name;

修改模式的所有者。

1
2
ALTER SCHEMA schema_name 
    OWNER TO new_owner;

参数说明

schema_name

现有模式的名称。

取值范围:已存在的模式名。

RENAME TO new_name

修改模式的名称。

new_name:模式的新名称。

模式名不能和当前数据库里其他的模式重名。
模式名不能和当前数据库的初始用户重名。
模式的名称不可以“pg_”开头。
模式的名称不可以“gs_role_”开头。

取值范围:字符串,要符合标识符命名规范。

OWNER TO new_owner

修改模式的所有者。非系统管理员要改变模式的所有者,该用户还必须是新的所有角色的直接或间接成员, 并且该成员必须在此数据库上有CREATE权限。

new_owner:模式的新所有者。

取值范围:已存在的用户名/角色名。

{ WITH | WITHOUT } BLOCKCHAIN

修改模式的防篡改属性。具有防篡改属性模式下的普通行存表均为防篡改历史表,不包括外表,临时表,系统表。当该模式下不包含任何表时才可修改防篡改属性。另外,不支持临时表模式、toast表模式、dbe_perf模式、blockchain模式修改防篡改属性。只有模式中不包含任何表的情况下,才能使用该语法在普通模式和防篡改模式中互转。

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
--创建模式ds。
gaussdb=# CREATE SCHEMA ds;

--将当前模式ds更名为ds_new。
gaussdb=# ALTER SCHEMA ds RENAME TO ds_new;

--创建用户jack。
gaussdb=# CREATE USER jack PASSWORD '********';

--将DS_NEW的所有者修改为jack。
gaussdb=# ALTER SCHEMA ds_new OWNER TO jack;

--修改ds_new的防篡改属性。
gaussdb=# ALTER SCHEMA ds_new WITH BLOCKCHAIN;

--删除用户jack和模式ds_new。
gaussdb=# DROP SCHEMA ds_new;
gaussdb=# DROP USER jack;

相关链接

CREATE SCHEMA,DROP SCHEMA

父主题: SQL语法

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家