摘要:南大通用 GBase 8c 数据库的权限管理机制清晰且灵活,旨在保障数据安全并支持精细化的访问控制。其核心主要包括默认权限机制、多种管理员角色、三权分立模式以及角色与用户管理。本文以特定实践场景为例,介绍GBase 8c权限管理的功能及配置方法。
南大通用 GBase 8c 数据库的权限管理机制清晰且灵活,旨在保障数据安全并支持精细化的访问控制。其核心主要包括默认权限机制、多种管理员角色、三权分立模式以及角色与用户管理。本文以特定实践场景为例,介绍GBase 8c权限管理的功能及配置方法。
3. 权限配置流程
在权限配置过程中,需要用到如下语法:
命令作用注意点ALTER DEFAULT PRIVILEGES设置未来对象默认权限用户级别,需分别执行GRANT ALL ON SCHEMA授予模式管理权限包含对象创建与删除GRANT ALL ON ALL TABLES授予已有表权限仅对当前存在的表生效SET search_path设置模式搜索路径影响对象创建和查询位置clean connection清理数据库连接生产环境慎用
3.1 模式权限配置
GBase 8c数据库中,使用GRANT ALL ON SCHEMA 语法为模式进行权限配置,授予用户对模式的完全控制权,包含创建/修改/删除对象、注释、使用等权限。
\c testgrant
create schema test_privileges;
-- 授予模式所有权
grant all on schema test_privileges to serveruser;
grant all on schema test_privileges to clientuser;
3.2 已有表权限配置
GBase 8c数据库中,使用GRANT ALL ON ALL TABLES 语法为所有表进行权限配置,仅对现有表生效, 包含SELECT/INSERT/UPDATE/DELETE/TRUNCATE等权限。
-- 授予现有表权限
grant all on all tables in schema test_privileges to serveruser;
grant all on all tables in schema test_privileges to clientuser;
3.3 默认权限配置
GBase 8c数据库中,使用ALTER DEFAULT PRIVILEGES IN SCHEMA xxx GRANT ALL ON TABLES TO xxx ;语法修改默认权限配置。
说明
仅影响执行命令的用户所建对象需在两个用户会话中分别执行确保未来新建表自动继承权限-- serveruser用户执行赋权给clientuser
ALTER DEFAULT PRIVILEGES IN SCHEMA test_privileges
GRANT ALL ON TABLES TO clientuser;
-- clientuser用户执行赋权给serveruser
ALTER DEFAULT PRIVILEGES IN SCHEMA test_privileges
GRANT ALL ON TABLES TO serveruser;
来源:GBASE南大通用