云数据库 GAUSSDB-GRANT:语法格式
语法格式
- 将表或视图的访问权限赋予指定的用户或角色。
1 2 3 4 5 6
GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFEREN CES | TRIGGER | ALTER | DROP | COMMENT | INDEX | VACUUM } [, ...] | ALL [ PRIVILEGES ] } ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] } TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ];
- 将表中字段的访问权限赋予指定的用户或角色。
1 2 3 4 5
GRANT { {{ SELECT | INSERT | UPDATE | REFERENCES | COMMENT } ( column_name [, ...] )} [, ...] | ALL [ PRIVILEGES ] ( column_name [, ...] ) } ON [ TABLE ] table_name [, ...] TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ];
如果拥有表的访问权限,则默认拥有表中所有字段的访问权限。如果要仅赋予表中某个字段的访问权限,需要先撤销所属表的访问权限。
- 将序列的访问权限赋予指定的用户或角色。
1 2 3 4 5 6
GRANT { { SELECT | UPDATE | USAGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON { [ SEQUENCE ] sequence_name [, ...] | ALL SEQUENCES IN SCHEMA schema_name [, ...] } TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ];
- 将数据库的访问权限赋予指定的用户或角色。
1 2 3 4 5
GRANT { { CREATE | CONNECT | TEMPORARY | TEMP | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON DATABASE database_name [, ...] TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ];
- 将域的访问权限赋予指定的用户或角色。
1 2 3 4
GRANT { USAGE | ALL [ PRIVILEGES ] } ON DOMAIN domain_name [, ...] TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ];
本版本暂时不支持赋予域的访问权限。
- 将客户端加密主密钥CMK的访问权限赋予指定的用户或角色。
1 2 3 4
GRANT { { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] } ON CLIENT_MASTER_KEY client_master_key TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ];
- 将列加密密钥CEK的访问权限赋予指定的用户或角色。
1 2 3 4
GRANT { { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] } ON COLUMN_ENCRYPTION_KEY column_encryption_key TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ];
- 将外部数据源的访问权限赋予给指定的用户或角色。
1 2 3 4
GRANT { USAGE | ALL [ PRIVILEGES ] } ON FOREIGN DATA WRAPPER fdw_name [, ...] TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ];
- 将外部服务器的访问权限赋予给指定的用户或角色。
1 2 3 4
GRANT { { USAGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON FOREIGN SERVER server_name [, ...] TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ];
- 将函数的访问权限赋予给指定的用户或角色。
1 2 3 4 5
GRANT { { EXECUTE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON { FUNCTION {function_name ( [ {[ argmode ] [ arg_name ] arg_type} [, ...] ] )} [, ...] | ALL FUNCTIONS IN SCHEMA schema_name [, ...] } TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ];
- 将存储过程的访问权限赋予给指定的用户或角色。
1 2 3 4
GRANT { { EXECUTE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON PROCEDURE {proc_name ( [ {[ argmode ] [ arg_name ] arg_type} [, ...] ] )} [, ...] TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ];
- 将过程语言的访问权限赋予给指定的用户或角色。
1 2 3 4
GRANT { USAGE | ALL [ PRIVILEGES ] } ON LANGUAGE lang_name [, ...] TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ];
本版本只有C函数支持所有用户创建,而Java和Internal只支持拥有sysadmin权限的用户创建。
- 拥有sysadmin权限的用户通过grant语法来将创建C函数的权限授权给普通用户时,不支持GRANT USAGE ON LANGUAGE c TO PUBLIC,只支持授权给特定用户。
- 拥有sysadmin权限的用户通过grant语法来将创建C函数的权限授权给普通用户时,不支持WITH GRANT OPTION。
- 将子集群的访问权限赋予指定的用户或角色。
1 2 3 4
GRANT { { CREATE | USAGE | COMPUTE | ALTER | DROP } [, ...] | ALL [ PRIVILEGES ] } ON NODE GROUP group_name [, ...] TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ];
将子集群的create权限赋予指定用户或角色时,会默认把usage和compute权限赋予指定用户或角色。
- 将模式的访问权限赋予指定的用户或角色。
1 2 3 4
GRANT { { CREATE | USAGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON SCHEMA schema_name [, ...] TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ];
将模式中的表或者视图对象授权给其他用户时,需要将表或视图所属的模式的USAGE权限同时授予该用户,若没有该权限,则只能看到这些对象的名称,并不能实际进行对象访问。
- 将表空间的访问权限赋予指定的用户或角色。
1 2 3 4
GRANT { { CREATE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON TABLESPACE tablespace_name [, ...] TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ];
- 将类型的访问权限赋予指定的用户或角色。
1 2 3 4
GRANT { { USAGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON TYPE type_name [, ...] TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ];
本版本暂时不支持赋予类型的访问权限。
- 将DIRECTORY对象的权限赋予指定的角色。
1 2 3 4
GRANT { { READ | WRITE | ALTER | DROP } [, ...] | ALL [PRIVILEGES] } ON DIRECTORY directory_name [, ...] TO { [GROUP] role_name | PUBLIC } [, ...] [WITH GRANT OPTION];
- 将PACKAGE对象的权限赋予指定的角色。
1 2 3 4
GRANT { { EXECUTE | ALTER | DROP | COMMENT } [, ...] | ALL [PRIVILEGES] } ON PACKAGE package_name [, ...] TO { [GROUP] role_name | PUBLIC } [, ...] [WITH GRANT OPTION];
- 将角色的权限赋予其他用户或角色的语法。
1 2 3
GRANT role_name [, ...] TO role_name [, ...] [ WITH ADMIN OPTION ];
- 将SYSADMIN权限赋予指定的角色。
1 2
GRANT ALL { PRIVILEGES | PRIVILEGE } TO role_name;