云数据库 GAUSSDB-管理Schema:Schema的权限控制
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