达梦数据库权限和预定角色介绍
概述
本文对达梦数据库数据库和对象权限及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…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...