南大通用 GBase 8c 数据库的权限管理机制清晰且灵活,旨在保障数据安全并支持精细化的访问控制。其核心主要包括默认权限机制、多种管理员角色、三权分立模式以及角色与用户管理。本文以特定实践场景为例,介绍GBase 8c权限管理的功能及配置方法。
1. 背景与目标
应用场景:某不同用户需要共享同一模式下的表,新建表时也希望自动继承访问权限。
问题:手动 GRANT 只能作用于已有对象,未来新建的表需要再次授权,容易遗漏。
解决思路:通过 ALTER DEFAULT PRIVILEGES 设置默认权限,确保未来对象自动继承权限。
目标:验证 ALTER DEFAULT PRIVILEGES 的双向授权效果,实现用户间表的互访。
2. 环境准备
2.1 环境信息
正常部署GBase 8c数据库集群后,创建testpri库,连接端口为15400。
数据库用户名为serceruser、clientuser
模式名为test_privileges
2.2 清理旧环境
sql
-- 清理旧环境
gsql -r -d postgres -p 15400
clean connection to all force for database testgrant;
drop database if exists testgrant;
drop user if exists serveruser;
drop user if exists clientuser;
2.3 创建新环境
创建数据库
lua
-- 创建新数据库
create database testgrant;
创建测试用户
sql
-- 创建测试用户
create user serveruser with login password '********';
create user clientuser with login password '********';