news 2026/9/5 13:14:39

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/9/3 1:06:15

应对超大模型与多源数据挑战:HOOPS工具包如何支撑船舶工程软件开发?

船舶类型的项目通常需要持续数年甚至数十年才能完成,模型规模极其庞大,且需要整合来自多种数据源的信息。服务于这个市场的应用程序通常由规模较小但专业度高的团队开发,并期望在多年后其他工具发生变化之后仍然保持可靠性。 在过去 30 多年…

作者头像 李华
网站建设 2026/9/2 4:42:13

电池产品出海合规怎么做:从产品判断到运输到平台,一篇走全流程

电池产品出海,最怕的不是“你没做合规”。最怕的是:你做了很多,但顺序错了。结果就是:货发不出去、平台突然要资料、被抽查时拿不出证据链。这篇不讲碎知识。我只给你一张电池出海合规路线图:你照着走,就不…

作者头像 李华
网站建设 2026/9/3 19:32:51

新手也能上手 一键生成论文工具 千笔ai写作 VS 笔捷Ai 专科生专属

随着人工智能技术的迅猛发展,AI辅助写作工具已逐渐成为高校学生完成毕业论文的重要助手。越来越多的学生开始借助这些工具提升写作效率、降低写作难度。然而,面对市场上琳琅满目的AI写作工具,许多学生在选择时感到困惑——究竟哪款工具能真正…

作者头像 李华
网站建设 2026/9/1 23:56:07

【课程设计/毕业设计】基于SSM的社会公益平台基于ssm的高校环保公益网站的设计与开发【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华