GRANT

功能描述

GRANT用于授予一个或多个角色的权限。

注意事项

本章节只包含dolphin新增的语法,原openGauss的语法未做删除和修改。 增加ALTER ROUTINE、CRAETE ROUTINE、CREATE TEMPORARY TABLES、CREATE USER、CREATE TABLESPACE、INDEX权限

语法格式

  • 新增ALTER ROUTINE权限

与function和procedure的alter权限基本一致

修改后的语法说明为:

  1. GRANT { { EXECUTE | ALTER ROUTINE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] }
  2. ON {FUNCTION {function_name ( [ {[ argmode ] [ arg_name ] arg_type} [, ...] ] )} | PROCEDURE {proc_name ( [ {[ argmode ] [ arg_name ] arg_type} [, ...] ] )} [, ...] | ALL FUNCTIONS IN SCHEMA schema_name [, ...] | ALL PROCEDURE IN SCHEMA schema_name [, ...] | schema_name.*}
  3. TO { [ GROUP ] role_name | PUBLIC } [, ...]
  4. [ WITH GRANT OPTION ];
  • 新增CREATE ROUTINE权限

与CREATE ANY FUNCTION权限基本一致

修改后的语法说明为:

  1. GRANT { CREATE ANY TABLE | ALTER ANY TABLE | DROP ANY TABLE | SELECT ANY TABLE | INSERT ANY TABLE | UPDATE ANY TABLE |
  2. DELETE ANY TABLE | CREATE ANY SEQUENCE | CREATE ANY INDEX | CREATE ANY FUNCTION | CREATE ROUTINE | EXECUTE ANY FUNCTION |
  3. CREATE ANY PACKAGE | EXECUTE ANY PACKAGE | CREATE ANY TYPE } [, ...]
  4. [ON *.*]
  5. TO [ GROUP ] role_name [, ...]
  6. [ WITH ADMIN OPTION ];
  • 新增CREATE TEMPORARY TABLES权限

与TEMPORARY权限基本一致

修改后的语法说明为:

  1. GRANT { { CREATE | CONNECT | CREATE TEMPORARY TABLES | TEMPORARY | TEMP | ALTER | DROP | COMMENT } [, ...]
  2. | ALL [ PRIVILEGES ] }
  3. ON { DATABASE database_name [, ...] | database_name.* }
  4. TO { [ GROUP ] role_name | PUBLIC } [, ...]
  5. [ WITH GRANT OPTION ];
  • 新增CREATE USER权限

控制用户创建新用户的权限,与用户的CREATEROLE和 NOCREATEROLE权限基本一致

新增的语法说明为:

  1. GRANT CREATE USER ON *.* TO ROLE_NAME;
  • 新增CREATE TABLESPACE权限

控制用户创建新表空间的权限

新增的语法说明为:

  1. GRANT CREATE TABLESPACE ON *.* TO ROLE_NAME;
  • 新增INDEX权限

与CREATE ANY INDEX权限基本一致

修改后的语法说明为:

  1. GRANT INDEX
  2. ON *.*
  3. TO [ GROUP ] role_name [, ...]
  4. [ WITH ADMIN OPTION ];

参数说明

N/A

示例

  1. GRANT ALTER ROUTINE ON FUNCTION TEST TO USER_TESTER;
  1. GRANT CREATE ANY FUNCTION TO USER_TESTER;
  1. GRANT CREATE TEMPORARY TABLES ON DATABASE DATABASE_TEST TO USER_TESTER;
  1. GRANT CREATE USER ON *.* TO USER_TESTER;
  1. GRANT CREATE TABLESPACE ON *.* TO USER_TESTER;
  1. GRANT INDEX TO TEST_USER;

相关链接

GRANT