达梦数据库权限和预定角色介绍
概述
本文对达梦数据库数据库和对象权限及DM预定义角色及角色创建进行介绍。
1.权限管理
用户权限有两类:数据库权限和对象权限。
数据库权限主要是指针对数据库对象的创建、删除、修改的权限,对数据库备份等权限。
数据库权限一般由 SYSDBA、SYSAUDITOR 和 SYSSSO 指定,也可以由具有特权的其他用户授予。
而对象权限主要是指对数据库对象中的数据的访问权限。
对象权限一般由数据库对象的所有者授予用户,也可由 SYSDBA 用户指定,或者由具有该对象权限的其他用户授权。
1.1 数据库权限
数据库权限与 DM 预定义角色有着重要的联系,一些数据库权限由于权力较大,只集中在几个 DM 系统预定义角色中,且不能转授。
表1.1 常用的几种数据库权限
| 数据库权限 | 说明 |
|---|---|
| CREATE TABLE | 在自己的模式中创建表的权限 |
| CREATE VIEW | 在自己的模式中创建视图的权限 |
| CREATE USER | 创建用户的权限 |
| CREATE TRIGGER | 在自己的模式中创建触发器的权限 |
| ALTER USER | 修改用户的权限 |
| ALTER DATABASE | 修改数据库的权限 |
| CREATE PROCEDURE | 在自己模式中创建存储程序的权限 |
| SELECT ANY DICTIONARY | 查询任意系统表或系统视图的记录的权限 |
不同类型的数据库对象,其相关的数据库权限也不相同。
例如,对于表对象,相关的数据库权限包括:CREATE TABLE:创建表
CREATE ANY TABLE:在任意模式下创建表
ALTER ANY TABLE:修改任意表
DROP ANY TABLE:删除任意表
INSERT TABLE:插入表记录
INSERT ANY TABLE:向任意表插入记录
UPDATE TABLE:更新表记录
UPDATE ANY TABLE:更新任意表的记录
DELETE TABLE:删除表记录
DELETE ANY TABLE:删除任意表的记录
SELECT TABLE:查询表记录
SELECT ANY TABLE:查询任意表的记录
REFERENCES TABLE:引用表
REFERENCES ANY TABLE:引用任意表
DUMP TABLE:导出表
DUMP ANY TABLE:导出任意表
GRANT TABLE:向其他用户进行表上权限的授权
GRANT ANY TABLE:向其他用户进行任意表上权限的授权
FLASHBACK TABLE:闪回表
FLASHBACK ANY TABLE:闪回任意表
而对于存储程序对象,其相关的数据库权限则包括:CREATE PROCEDURE:创建存储程序
CREATE ANY PROCEDURE:在任意模式下创建存储程序
DROP ANY PROCEDURE:删除任意存储程序
EXECUTE PROCEDURE:执行存储程序
EXECUTE ANY PROCEDURE:执行任意存储程序
GRANT PROCEDURE:向其他用户进行存储程序上权限的授权
GRANT ANY PROCEDURE:向其他用户进行任意存储程序上权限的授权
需要说明的是,表、视图、触发器、存储程序等对象为模式对象,在默认情况下对这些对象的操作都是在当前用户自己的模式下进行的。
如果要在其他用户的模式下操作这些类型的对象,需要具有相应的 ANY 权限。例如,要能够在其他用户的模式下创建表,当前用户必须具有 CREATE ANY TABLE 数据库权限,如果希望能够在其他用户的模式下删除表,必须具有 DROP ANY TABLE 数据库权限。
1.2 对象权限
对象权限主要是对数据库对象中的数据的访问权限,主要用来授予需要对某个数据库对象的数据进行操纵的数据库普通用户。表 1.2 列出了主要的对象权限。
| 数据库对象类型对象权限 | 表 | 视图 | 存储程序 | 包 | 类 | 类型 | 序列 | 目录 | 域 |
|---|---|---|---|---|---|---|---|---|---|
| SELECT | √ | √ | √ | ||||||
| INSERT | √ | √ | |||||||
| DELETE | √ | √ | |||||||
| UPDATE | √ | √ | |||||||
| REFERENCES | √ | ||||||||
| SELECT FOR DUMP | √ | ||||||||
| EXECUTE | √ | √ | √ | √ | √ | ||||
| READ | √ | ||||||||
| WRITE | √ | ||||||||
| USAGE | √ | ||||||||
| FLASHBACK | √ |
以下几种权限重点说明下:
目录对象的 READ 和 WRITE 权限指可以读或写访问某个目录对象的权限。
域对象的 USAGE 权限指可以使用某个域对象的权限。拥有某个域的 USAGE 权限的用户可以在定义或修改表时为表列声明使用这个域。
当一个用户获得另一个用户的某个对象的访问权限后,可以以“模式名.对象名”的形式访问这个数据库对象。
对象权限的授予一般由对象的所有者完成,也可由 SYSDBA 或具有某对象权限且具有转授权限的用户授予,但最好由对象的所有者完成。
2.角色管理
角色是一组权限的组合,使用角色的目的是使权限管理更加方便。角色中的权限既可以是数据库权限,也可以是对象权限,还可以是别的角色。
为了使用角色,首先在数据库中创建一个角色,这时角色中没有任何权限。
然后向角色中添加权限。
最后将这个角色授予用户,这个用户就具有了角色中的所有权限。
在使用角色的过程中,可以随时向角色中添加权限,也可以随时从角色中删除权限,用户的权限也随之改变。如果要回收所有权限,只需将角色从用户回收即可。
2.1DM 预定义角色
在 DM 数据库中有两类角色,一类是 DM 预设定的角色,一类是用户自定义的角色。DM 提供了一系列的预定义角色以帮助用户进行数据库权限的管理。预定义角色在数据库被创建之后即存在,并且已经包含了一些权限,数据库管理员可以将这些角色直接授予用户。
表2.1 “三权分立”常见的数据库预设定的角色
| 角色名称 | 角色简单说明 |
|---|---|
| DBA | DM 数据库系统中对象与数据操作的最高权限集合,拥有构建数据库的全部特权,只有 DBA 才可以创建数据库结构 |
| RESOURCE | 可以创建数据库对象,对有权限的数据库对象进行数据操纵,不可以创建数据库结构 |
| PUBLIC | 不可以创建数据库对象,只能对有权限的数据库对象进行数据操纵 |
| VTI | 具有系统动态视图的查询权限,VTI 默认授权给 DBA 且可转授 |
| SOI | 具有非审计/安全系统表的查询权限 |
| SVI | 具有基础 V 视图的查询权限 |
| DB_AUDIT_ADMIN | 数据库审计的最高权限集合,可以对数据库进行各种审计操作,并创建新的审计用户 |
| DB_AUDIT_OPER | 可以对数据库进行各种审计操作,但不能创建新的审计用户 |
| DB_AUDIT_PUBLIC | 无实际权限 |
| DB_AUDIT_VTI | 具有系统动态视图的查询权限,DB_AUDIT_VTI 默认授权给 DB_AUDIT_ADMIN 且可转授 |
| DB_AUDIT_SOI | 具有与审计操作相关的系统表的查询权限 |
| DB_AUDIT_SVI | 具有基础 V 视图和审计 V 视图的查询权限 |
| DB_POLICY_ADMIN | 数据库强制访问控制的最高权限集合,可以对数据库进行强制访问控制管理,并创建新的安全管理用户 |
| DB_POLICY_OPER | 可以对数据库进行强制访问控制管理,但不能创建新的安全管理用户 |
| DB_POLICY_PUBLIC | 无实际权限 |
| DB_POLICY_VTI | 具有系统动态视图的查询权限,DB_POLICY_VTI 默认授权给 DB_POLICY_ADMIN 且可转授 |
| DB_POLICY_SOI | 具有与安全操作相关的系统表的查询权限 |
| DB_POLICY_SVI | 具有基础 V 视图和安全 V 视图的查询权限 |
初始时仅有管理员具有创建用户的权限,每种类型的管理员创建的用户缺省就拥有这种类型的 PUBLIC 和 SOI 预定义角色,如 SYSAUDITOR 新创建的用户缺省就具有 DB_AUDIT_PUBLIC 和 DB_AUDIT_SOI 角色。之后管理员可根据需要进一步授予新建用户其他预定义角色。
管理员也可以将“CREATE USER”权限转授给其他用户,这些用户之后就可以创建新的用户了,他们创建的新用户缺省也具有与其创建者相同类型的 PUBLIC 预定义角色。
2.2 创建角色和赋权使用
使用说明:
- 创建者必须具有 CREATE ROLE 数据库权限;
- 角色名的长度不能超过 128 个字符;
- 角色名不允许和系统已存在的用户名重名;
- 角色名不允许是 DM 保留字。
su - dmdba
disql SYSDBA/Dameng123@127.0.0.1:5238
create role "ROLEDXH";
给角色赋权:
grant CREATE TABLE,CREATE VIEW,CREATE INDEX TO "ROLEDXH";
创建用户:
create user "DXHTEST" identified by "Dameng123" default tablespace "DXHTBS";
角色赋权给用户:
grant "ROLEDM" to "DXHTEST";
总结
通过上面介绍能了解到达梦数据库的数据库权限、对象权限内容;
了解达梦数据库预定义的角色及创建使用角色。
关于达梦数据库更多学习内容,欢迎访问达梦社区:
https://eco.dameng.com
相关文章:
达梦数据库权限和预定角色介绍
概述 本文对达梦数据库数据库和对象权限及DM预定义角色及角色创建进行介绍。 1.权限管理 用户权限有两类:数据库权限和对象权限。 数据库权限主要是指针对数据库对象的创建、删除、修改的权限,对数据库备份等权限。 数据库权限一般由 SYSDBA、SYSAU…...
Python编程从入门到实践_8-8 用户的专辑_答案
Python编程从入门到实践_8-8 用户的专辑_答案 我也看了一些其他人的答案,很多的答案存在问题,每次调用函数 make_album() 后生成一个专辑字典会覆盖上次调用函数 make_album() 生成的字典,不符合题意。 我采取的解决方案是添加一个空列表 …...
HummingBird 基于 Go 开源超轻量级 IoT 物联网平台
蜂鸟(HummingBird) 是 Go 语言实现的超轻量级物联网开发平台,包含设备接入、产品管理、物模型、告警中心、规则引擎等丰富功能模块。系统采用GoLang编写,占用内存极低, 单物理机可实现百设备的连接。 在数据存储上&…...
10.小程序样式
样式 css部分样式不支持,并且添加了rpx属性,小程序开发的时候应该使用rpx,而不是px,因为rpx是将移动端的屏幕大小分为750份,会自动按设备的大小去适配;我们在开发时应该以iphone6为基准的设备进行开发&…...
Flink 流式读写文件、文件夹
文章目录 一、flink 流式读取文件夹、文件二、flink 写入文件系统——StreamFileSink三、查看完整代码 一、flink 流式读取文件夹、文件 Apache Flink针对文件系统实现了一个可重置的source连接器,将文件看作流来读取数据。如下面的例子所示: StreamExe…...
【SA8295P 源码分析】64 - QNX 与 Android GVM 显示 Dump 图片方法汇总
【SA8295P 源码分析】64 - QNX 与 Android GVM 显示 Dump 图片方法汇总 一、QNX侧1.1 surfacedump 功能1.2 screenshot 功能二、Android GVM 侧2.1 screencap -p 导出 PNG 图片2.2 screencap 不加 -p 参数,导出 RGB32 图片2.3 dumpsys SurfaceFlinger --display-id 方法系列文…...
字符串旋转(1)
目录 编辑 题目要求😍: 题目内容❤: 题目分析📚: 主函数部分📕:编辑 方法一🐒: 方法二🐒🐒: 方法三🐒…...
【SA8295P 源码分析】13 - Android GVM 虚拟机 QUPv3 UART / SPI / I2C功能配置及透传配置
【SA8295P 源码分析】13 - Android GVM 虚拟机 QUPv3 UART / SPI / I2C功能配置及透传配置 一、QUP v3 介绍二、QUP v3 UART 功能配置2.1 TrustZone 域 Uart 资源权限配置:以 QUPV3_0_SE2 为例2.2 QNX Host 域关闭 Uart 资源:以 QUPV3_0_SE2 为例2.3 Android Kernel 域使能 U…...
STM32 F103C8T6学习笔记10:OLED显示屏GIF动图取模—简易时钟—动图手表的制作~
今日尝试做一款有动图的OLED实时时钟,本文需要现学一个OLED的GIF动图取模 其余需要的知识点有不会的可以去我 STM32 F103C8T6学习笔记 系列专栏自己查阅把,闲话不多,直接开肝~~~ 文章提供源码,测试工程下载,测试效…...
大数据课程K3——Spark的常用案例
文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 掌握Spark的常用案例——WordCount; ⚪ 掌握Spark的常用案例——求平均值; ⚪ 掌握Spark的常用案例——求最大值和最小值; ⚪ 掌握Spark的常用案例——TopK; ⚪ 掌握Spark的常用案例…...
85-最大矩阵
题目 给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 示例 1: 输入:matrix [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,…...
8.3 【C语言】通过指针引用数组
8.3.1 数组元素的指针 所谓数组元素的指针就是数组元素的地址。 可以用一个指针变量指向一个数组元素。例如: int a[10]{1,3,5,7,9,11,13,15,17,19}; int *p; p&a[0]; 引用数组元素可以用下标法,也可以用指针法…...
基于Flink CDC实时同步PostgreSQL与Tidb【Flink SQL Client模式下亲测可行,详细教程】
文章目录 一、PostgreSQL作为数据来源(source),由flink读取1.postgre安装与配置2.flink安装与配置3.flink cdc postgre配置3.1 postgre配置(for flink cdc)3.2 flink cdc postgres的jar包下载 4.flink cdc postgre测试…...
Vue-5.编译器Idea
Vue专栏(帮助你搭建一个优秀的Vue架子) Vue-1.零基础学习Vue Vue-2.Nodejs的介绍和安装 Vue-3.Vue简介 Vue-4.编译器VsCode Vue-5.编译器Idea Vue-6.编译器webstorm Vue-7.命令创建Vue项目 Vue-8.Vue项目配置详解 Vue-9.集成(.editorconfig、…...
qiuzhiji3
本篇想介绍一下慧与,这里的工作氛围和企业文化令人难忘,希望更多人了解它 也想探讨一下不同的文化铸就的不同企业,究竟有哪些差别。 本篇将从我个人角度出发描述慧与。 2022/3/16至2023/7/31 本篇初次写于2023年8月20日 说起来在毕业之前那段…...
JVM——垃圾回收(垃圾回收算法+分代垃圾回收+垃圾回收器)
1.如何判断对象可以回收 1.1引用计数法 只要一个对象被其他对象所引用,就要让该对象的技术加1,某个对象不再引用其,则让它计数减1。当计数变为0时就可以作为垃圾被回收。 有一个弊端叫做循环引用,两个的引用计数都是1ÿ…...
QT TLS initialization failed问题(已解决) QT基础入门【网络编程】openssl
问题: qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed 这个问题的出现主要是使用了https请求:HTTPS ≈ HTTP + SSL,即有了加密层的HTTP 所以Qt 组件库需要OpenSSL dll 文件支持HTTPS 解决: 1.加入以下两行代码获取QT是否支持opensll以…...
SpringMVC之获取请求参数
文章目录 前言一、通过ServletAPI获取二、通过控制器方法的形参获取请求参数三、注解1.RequestParam2.RequestHeader3.CookieValue前面的代码总和:4.通过POJO获取请求参数 三、解决获取请求参数的乱码问题总结 前言 下面用到了thymeleaf,不知道的可以看…...
【无标题】QT应用编程: QtCreator配置Git版本控制(码云)
QT应用编程: QtCreator配置Git版本控制(码云) 感谢:DS小龙哥的文章,这篇主要参考小龙哥的内容。 https://cloud.tencent.com/developer/article/1930531?areaSource102001.15&traceIdW2mKALltGu5f8-HOI8fsN Qt Creater 自带了git支持。但是一直没…...
JVM面试题-2
1、有哪几种垃圾回收器,各自的优缺点是什么? 垃圾回收器主要分为以下几种:Serial、ParNew、Parallel Scavenge、Serial Old、Parallel Old、CMS、G1; Serial:单线程的收集器,收集垃圾时,必须stop the worl…...
用Python处理全球植被数据?手把手教你将BEPS模型的.img文件转成GeoTIFF
从.img到GeoTIFF:Python生态数据处理实战指南 引言:当生态学遇上数据科学 在生态学研究领域,BEPS模型生成的全球植被生产力数据(GPP/NEP/NPP)是理解碳循环和生态系统功能的重要基础。然而,许多研究者第一次…...
高效掌握Mermaid:从文本到可视化的实战指南
高效掌握Mermaid:从文本到可视化的实战指南 【免费下载链接】mermaid mermaid-js/mermaid: 是一个用于生成图表和流程图的 Markdown 渲染器,支持多种图表类型和丰富的样式。适合对 Markdown、图表和流程图以及想要使用 Markdown 绘制图表和流程图的开发者…...
【部署】windows下虚拟机OpenClaw Ubuntu 24.04.4 安装指南
未来已来,只需一句指令,养龙虾专栏导航,持续更新ing… 概述 前置环境:win10/11、vmware等虚拟机(安装时注意勾选VMware Tools、cpu可以分配2C,内存建议4G,硬盘空间建议给40G) 系统要求 Node.js 22+:安装脚本可自动检测并安装(下文补充手动安装方案); Ubuntu 24.0…...
把 SAP Fiori 后端授权模型讲透:从 PFCG、Catalog 到 SU24 的一条完整链路
很多团队在上线 SAP Fiori 应用时,会把注意力集中在前端目录、磁贴和页面配置上,结果到了联调或上线阶段才发现:用户明明能看到应用入口,点击之后却报错;或者应用能打开,但列表为空;再或者少数用户能看到不该看的业务数据。问题往往不在 UI 本身,而在后端授权模型没有真…...
基于springboot服装生产管理的设计与实现.7z(源码+论文+任务书+开题报告)
[点击下载链接》》》] 本协力服装厂服装生产管理系统设计目标是实现协力服装厂服装生产的信息化管理,提高管理效率,使得协力服装厂服装生产管理作规范化、科学化、高效化。 本文重点阐述了协力服装厂服装生产管理系统的开发过程,以实际运用为…...
在Windows和RV1126上部署ONNX肺部分割模型:一份OpenCV DNN与RKNN的完整对比实践
跨平台肺部分割模型部署实战:OpenCV DNN与RKNN技术选型指南 当医疗影像分析遇上边缘计算,开发者们常常面临一个关键抉择:如何在保证精度的前提下,将训练好的深度学习模型高效部署到不同计算平台?本文将以肺部分割模型为…...
AI赋能Spring开发:借助快马平台快速集成Spring AI,打造智能应用
AI赋能Spring开发:借助快马平台快速集成Spring AI,打造智能应用 Spring生态庞大,新技术集成往往需要查阅大量文档。最近我在尝试将Spring AI集成到项目中,发现这个过程比想象中要复杂得多。好在发现了InsCode(快马)平台ÿ…...
Mojo+Python混合部署案例深度拆解(从Jupyter到生产环境的无缝迁移全路径)
第一章:MojoPython混合部署案例深度拆解(从Jupyter到生产环境的无缝迁移全路径)Mojo 作为新兴的系统级编程语言,与 Python 生态天然兼容,为机器学习模型从探索性开发(Jupyter Notebook)迈向高吞…...
软件测试学习第一期
🎬 博客主页:博主链接 🎥 本文由 M malloc 原创,首发于 CSDN🙉 🎄 学习专栏推荐:LeetCode刷题集! 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指…...
降重不靠删,降AI不靠装——百考通用语义重构守住你的原创观点
在2026年的高校毕业季,一种新型的不公正在悄然制度化: 不是抄袭者被放过,而是原创者被怀疑; 不是敷衍者被批评,而是严谨者被标记; 不是懒惰者被警告,而是认真写了一篇好论文的人,被迫…...
