news 2026/5/27 21:24:23

GBase 8c用户、角色、权限体系详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GBase 8c用户、角色、权限体系详解

一、核心概念定义

1.用户(User)

  • 定义:数据库的认证实体,用于登录数据库和执行操作
  • 特性:
    必须有唯一用户名
    可设置密码、有效期、资源限制
    可被授予角色或直接拥有权限

2.角色(Role)

  • 定义:权限的集合,是一组系统权限和对象权限的集合
  • 特性:
    可以嵌套(角色授予角色)
    不可用于登录(除非设置 LOGIN 属性)
    便于批量权限管理

3.权限(Privilege)

  • 定义:对数据库资源执行操作的许可;表示用户访问某个数据库对象的操作是否被允许,数据库对象包括表、函数、模式、序列等等,操作包括了增、删、改、查、创建等等。
  • 二维分类:
    • 系统权限:实例级操作(如创建数据库、管理用户)
    • 对象权限:对象级操作(如查询表、执行函数)

二、三者关系模型

关键特性:

  • 权限继承:角色 A 授予角色 B,则 B 拥有 A 的所有权限
  • 成员关系:用户加入角色,即获得该角色所有权限
  • 默认角色:用户可设置 SET DEFAULT ROLE 自动激活

三、权限详细分类

1.系统权限(9 种核心权限)

重要:系统权限不支持 GRANT/REVOKE,必须通过 CREATE / ALTER USER 管理!

2.对象权限

3.权限层级总结图

四、用户、角色与权限管理操作

1.用户全生命周期管理

-- 创建用户 CREATE USER dev_user WITH SYSADMIN PASSWORD 'Dev@2024' VALID UNTIL '2025-01-01' CONNECTION LIMIT 10; -- 修改属性 ALTER USER dev_user WITH NOSYSADMIN CONNECTION LIMIT 20; -- 锁定/解锁 ALTER USER dev_user ACCOUNT LOCK; ALTER USER dev_user ACCOUNT UNLOCK; -- 删除用户(CASCADE级联删除依赖对象,需慎用) DROP USER dev_user;

2.用户与权限管理

2.1 系统权限

--添加授权 alter user test with sysadmin createrole createdb ; --取消授权 alter user test with nocreaterole nocreatedb noSysadmin ;

2.2 对象权限

创建只读权限用户

-- 以test用户,对某库的public为例 CREATE USER test PASSWORD 'Czt@123456'; grant usage on schema public to test; -- 只读public下单表 table1grant select on table public.table1 to test; -- 只读public下所有表 grant select on all tables in schema public to test;

创建普通用户 create 权限和对象所有权限

-- 以test1用户,对try库的public为例 CREATE USER test1 PASSWORD 'Test@2025'; GRANT CREATE ON DATABASE try TO test1; GRANT CREATE ON schema public TO test1; grant all on all tables in schema public to test1;

查看 test 用户对 public 下所有表的 privilege_type

try=# SELECT grantee,table_schema,table_name, string_agg( privilege_type,', ' ) as privilege_type FROM information_schema.role_table_grants where grantee='test' group by table_name,table_schema,grantee; grantee | table_schema | table_name | privilege_type---------+--------------+-------------------+---------------------------------------------------------------------------------------------------- test | public | t_json | INSERT, SELECT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER, ALTER, DROP, COMMENT, INDEX, VACUUM test | public | test | INSERT, SELECT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER, ALTER, DROP, COMMENT, INDEX, VACUUM test | public | test11 | INSERT, SELECT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER, ALTER, DROP, COMMENT, INDEX, VACUUM test | public | all_db_links | INSERT, SELECT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER, ALTER, DROP, COMMENT, INDEX, VACUUM test | public | hte_as_syslog | INSERT, SELECT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER, ALTER, DROP, COMMENT, INDEX, VACUUM test | public | dual | INSERT, SELECT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER, ALTER, DROP, COMMENT, INDEX, VACUUM test | public | spatial_ref_sys | INSERT, SELECT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER, ALTER, DROP, COMMENT, INDEX, VACUUM (7 rows)

3.角色与权限管理

-- 授予对象权限给角色 GRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA app TO app_developer; -- 将角色授予用户 GRANT app_developer TO dev_user;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/21 20:09:11

中国城市规模指数(1992-2023)

1816中国城市规模指数(1992-2023)数据简介中国城市规模指数,参考丁从明等(2020)的做法,通过中国夜间灯光数据,提取其中各城市夜间灯光值大于等于22的区域取其平均值,再取其自然对数即为城市规模指数数据&am…

作者头像 李华
网站建设 2026/5/20 20:25:30

【Linux指南】Linux粘滞位详解:解决共享目录文件删除安全隐患

这个标题很“实战向”,而且粘滞位(Sticky Bit)正好是 Linux 权限里最容易被忽略、但非常重要的一块。 我按 问题场景 → 原理 → 用法 → 对比 → 面试/生产总结 给你一篇真正能用的指南。 【Linux 指南】Linux 粘滞位详解:解决共…

作者头像 李华
网站建设 2026/5/22 18:26:26

1小时文献量30秒读完!手把手教你构建论文总结 Agent Skill

大家好我是小肥肠。转眼又到了写论文的季节,你是不是又在为需要阅读大量参考文献发愁?今天我们将开发一个 Agent Skill。你只需提供文件源文件,它便能自动输出文献总结报告,告别低效的人肉阅读,让 AI 替你完成最枯燥的…

作者头像 李华
网站建设 2026/5/19 12:37:28

重磅升级|2026“泰迪杯”全新赛制发布,助力数字化人才实战成长

2026年1月29日晚,2026年“泰迪杯”数据挖掘挑战赛新赛制宣讲会在线上圆满落幕。本次宣讲会由“泰迪杯”挑战赛及技能赛命题专家华南师范大学杨坦老师以及泰迪智能科技创始人张良均董事长联合宣讲,首次系统性揭晓了“泰迪杯”赛制改革的各项内容与人才培养…

作者头像 李华