云数据库 GAUSSDB-管理Schema:Schema的权限控制

时间:2025-06-03 09:33:18

Schema的权限控制

默认情况下,用户仅能访问其拥有的Schema内的数据库对象。若要访问其他Schema中的对象,需由目标Schema所有者授予对应USAGE权限。

通过将模式的CREATE权限授予某用户,被授权用户就可以在此模式中创建对象。默认情况下,所有角色都拥有在public模式上的usage权限,但是普通用户没有在public模式上的CREATE权限。普通用户具备连接指定数据库并在其public模式中创建对象的权限时,将产生安全风险。若已授予普通用户public模式的CREATE权限,建议执行以下语句撤销该权限。

  • 撤销PUBLIC在public模式下创建对象的权限,下面语句中第一个“public”是模式,第二个“PUBLIC”指系统预定义的所有用户角色。
    1
    2
    gaussdb=# REVOKE CREATE ON SCHEMA public FROM PUBLIC;
    REVOKE
    
  • 执行如下命令查看当前Schema。
    1
    2
    3
    4
    5
    gaussdb=# SELECT current_schema();
     current_schema 
    ----------------
     myschema
    (1 row)
    
  • 执行如下命令创建用户jack,并将myschema的usage权限授予用户jack。
    1
    2
    3
    4
    gaussdb=# CREATE USER jack IDENTIFIED BY '********';
    CREATE ROLE
    gaussdb=# GRANT USAGE ON SCHEMA myschema TO jack;
    GRANT
    
  • 将用户jack对于myschema的usage权限收回。
    1
    2
    gaussdb=# REVOKE USAGE ON SCHEMA myschema FROM jack;
    REVOKE
    
support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0035.html