云数据库 GAUSSDB-GRANT:语法格式

时间:2024-01-23 20:09:23

语法格式

  • 将表或视图的访问权限赋予指定的用户或角色。
    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 { 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 { { SELECT | UPDATE } [, ...] | ALL [ PRIVILEGES ] }
        ON LARGE OBJECT loid [, ...]
        TO { [ GROUP ] role_name | PUBLIC } [, ...]
        [ WITH GRANT OPTION ];
    

    本版本暂时不支持大对象。

  • 将模式的访问权限赋予指定的用户或角色。
    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 ];
    

    本版本暂时不支持赋予类型的访问权限。

  • 将Data Source对象的权限赋予指定的角色。
    1
    2
    3
    4
    GRANT { USAGE | ALL [PRIVILEGES]}
       ON DATA SOURCE src_name [, ...]
       TO { [GROUP] role_name | PUBLIC } [, ...]
       [WITH GRANT OPTION];
    
  • 将directory对象的权限赋予指定的角色。
    1
    2
    3
    4
    GRANT { { READ | WRITE } [, ...] | ALL [PRIVILEGES] }
       ON DIRECTORY directory_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;
    
support.huaweicloud.com/devg-v1-gaussdb/gaussdb_devg_0613.html