达梦数据库授权给某个用户查询其他指定用户下所有表的权限
方法1:
新版本有一个数据库参数
GRANT_SCHEMA,表示是否开启授予和回收模式权限功能。0:否;1:是
此参数为静态参数,默认是0,将改参数修改为1后,重启数据库生效。
将参数修改为1
SP_SET_PARA_VALUE(2,'GRANT_SCHEMA',1);
参数生效后,可直接执行SQL进行授权,例如将模式 B 下所有对象的查询权限授予用户 A
GRANT SELECT ON SCHEMA B TO A;
方法2:
可以通过创建一个存储过程来实现:
CREATE OR REPLACE PROCEDURE GRANT_ALL_SEL(GRANTOR IN VARCHAR2, GRANTEE IN VARCHAR2) ASSQLSTMT VARCHAR2(4000);CURSOR CUR FOR SELECT ID, NAME FROM SYSOBJECTS WHERE TYPE$ = 'SCHOBJ' AND SUBTYPE$ IN ('STAB', 'UTAB') AND (PID = -1 OR PID = 0) AND SCHID = (SELECT ID FROM SYSOBJECTS WHERE TYPE$ = 'SCH' AND NAME = GRANTOR);TYPE MYREC IS CUR%ROWTYPE;REC_V MYREC;TYPE R_PRIV IS RECORD (CUR_PRIV_NAME VARCHAR2(128), CUR_BE_GRANT CHAR(1), CUR_CAN_GRANT CHAR(1), CUR_IS_GRANT CHAR(1), ORG_PRIV_NAME VARCHAR2(128), ORG_CAN_GRANT CHAR(1)); TYPE T_PRIV IS TABLE OF R_PRIV;t_p T_PRIV;OBJ_PRIV CURSOR;
BEGINFOR REC_V IN CUR LOOPOPEN OBJ_PRIV FORWITH CUR_PRIVS(PRIV_NAME, BE_GRANT, CAN_GRANT, ISGRANT) AS(SELECT 'SELECT', 'Y', 'N', 'Y' FROM DUAL )SELECT CUR_PRIVS.*, SF_GET_SYS_PRIV(ORG_PRIV.PRIVID), ORG_PRIV.GRANTABLEFROM CUR_PRIVSLEFT JOIN (SELECT * FROM SYSGRANTS WHERE OBJID = REC_V.ID AND COLID = -1 AND URID = 50331751) ORG_PRIV ON CUR_PRIVS.PRIV_NAME = SF_GET_SYS_PRIV(ORG_PRIV.PRIVID);FETCH OBJ_PRIV BULK COLLECT INTO t_p;CLOSE OBJ_PRIV;FOR I IN 1..t_p.COUNT LOOPSQLSTMT := NULL;IF (t_p(I).CUR_IS_GRANT = 'Y') THENIF (t_p(I).CUR_CAN_GRANT = 'Y') THENSQLSTMT := 'GRANT ' || t_p(I).CUR_PRIV_NAME || ' ON "' || GRANTOR || '"."' || REC_V.NAME || '" TO "' || GRANTEE || '" WITH GRANT OPTION';ELSEIF (t_p(I).ORG_PRIV_NAME IS NULL) THENSQLSTMT := 'GRANT ' || t_p(I).CUR_PRIV_NAME || ' ON "' || GRANTOR || '"."' || REC_V.NAME || '" TO "' || GRANTEE || '"';ELSEIF (t_p(I).ORG_CAN_GRANT = 'Y') THENSQLSTMT := 'REVOKE GRANT OPTION FOR ' || t_p(I).CUR_PRIV_NAME || ' ON "' || GRANTOR || '"."' || REC_V.NAME || '" FROM "' || GRANTEE || '" CASCADE';END IF;END IF;END IF;ELSEIF (t_p(I).CUR_BE_GRANT = 'Y' AND t_p(I).ORG_PRIV_NAME IS NOT NULL) THENSQLSTMT := 'REVOKE ' || t_p(I).CUR_PRIV_NAME || ' ON "' || GRANTOR || '"."' || REC_V.NAME || '" FROM "' || GRANTEE || '" CASCADE';ELSEIF (t_p(I).CUR_CAN_GRANT = 'Y' AND t_p(I).ORG_CAN_GRANT = 'Y') THENSQLSTMT := 'REVOKE GRANT OPTION FOR ' || t_p(I).CUR_PRIV_NAME || ' ON "' || GRANTOR || '"."' || REC_V.NAME || '" FROM "' || GRANTEE || '" CASCADE';END IF;END IF;END IF;IF (SQLSTMT IS NOT NULL) THENEXECUTE IMMEDIATE SQLSTMT;END IF;END LOOP;END LOOP;COMMIT;
END GRANT_ALL_SEL;
然后调用此存储过程即可,例如将模式 B 下所有对象的查询权限授予用户 A
CALL GRANT_ALL_SEL('B','A');
相关文章:
达梦数据库授权给某个用户查询其他指定用户下所有表的权限
方法1: 新版本有一个数据库参数 GRANT_SCHEMA,表示是否开启授予和回收模式权限功能。0:否;1:是 此参数为静态参数,默认是0,将改参数修改为1后,重启数据库生效。 将参数修改为1 S…...
uniapp 微信小程序打包之后vendor.js 主包体积太大,解决办法,“subPackages“:true设置不生效
现在是打包的时候,vendor.js 的内容全部打到了主包里面, 说一下我的方法: 1. 通过发行 小程序打包 这样打包的体积是最小的,打包之后打开微信开发工具,然后再上传 2.manifest.json,在“mp-weixin”里添加代码 "…...
Docker数据卷容器实战
数据卷容器 数据共享 上面讲述的是主机和容器之间共享数据,那么如何实现容器和容器之间的共享数据呢?那就是创建 创建数据卷容器。 命名的容器挂载数据卷,其他容器通过挂载这个(父容器)实现数据共享,挂载…...
【Eureka 缓存机制】
今天简单介绍一下Eureka server 的缓存机制吧✌️✌️✌️ 一、先来个小剧场:服务发现的"拖延症" 想象你是个外卖小哥(客户端),每次接单都要打电话问调度中心(Eureka Server):“现在…...
docker-compose方式启动Kafka Sasl加密认证(无zk)
首先参考文档,思考过程可以进行参考https://juejin.cn/post/7294556533932884020#heading-3 用的镜像是Bitnami,对SASL配置进行了简化,需要按照特定格式去配置jass验证 完整配置如下 镜像版本参考:https://hub.docker.com/r/bitn…...
[ComfyUI]官方已支持Skyreels混元图生视频,速度更快,效果更好(附工作流)
一、介绍 昨天有提到官方已经支持了Skyreels,皆大欢喜,效果更好一些,还有GGUF量化版本,进一步降低了大家的显存消耗。 今天就来分享一下官方流怎么搭建,我体验下来感觉更稳了一些,生成速度也更快…...
数据库导出
MySQL数据库 使用命令行导出 导出整个数据库:在命令行中输入mysqldump -u用户名 -p密码 数据库名 > 导出文件路径/文件名.sql。例如mysqldump -uroot -p123456 mydb > /home/user/mydb_backup.sql,回车后输入密码即可将名为mydb的数据库导出为SQL…...
Flask 应用结构与模块化管理详细笔记
1. 代码结构优化:StructureA 最初的 Flask 项目结构适用于小型应用,但不适用于大型应用。为了改进代码结构,我们将 URL 管理应用拆分为多个模块。 1.1 StructureA 目录结构 StructureA |-- .flaskenv |-- app.py |-- views.py |-- templat…...
Excel的两个小问题解决
(一)因为合并单元格存在,无法使用下拉自动填充公式。 解决方案: 使用 CtrlEnter 组合键 选中目标区域:选中需要应用公式的所有合并单元格区域,这些单元格可能是由 2 行或 3 行等合并而成。输入公式&…...
计算机毕业设计Python+DeepSeek-R1大模型期货价格预测分析 期货价格数据分析可视化预测系 统 量化交易大数据 机器学习 深度学习
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
JVM 面试
JVM 运行时内存区域划分是怎样的? 程序计数器:记录当前线程执行的字节码指令的地址,是线程私有的。 Java 虚拟机栈:每个方法在执行时都会创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息&#…...
智慧后勤的消防管理:豪越科技为安全护航
智慧后勤消防管理难题大揭秘! 在智慧后勤发展得如火如荼的当下,消防管理却暗藏诸多难题。传统模式下,消防设施分布得那叫一个散,就像一盘散沙,管理起来超费劲。人工巡检不仅效率低,还容易遗漏,不…...
【Elasticsearch】(Java 版)
Elasticsearch(Java 版) 文章目录 Elasticsearch(Java 版)**1. Elasticsearch 简介****1.1 什么是 Elasticsearch?****1.2 核心概念** **2. 安装与配置****2.1 环境要求****2.2 安装步骤****Linux/macOS****Windows** …...
DeepSeek在昇腾上的模型部署 - 常见问题及解决方案
2024年12月26日,DeepSeek-V3横空出世,以其卓越性能备受瞩目。该模型发布即支持昇腾,用户可在昇腾硬件和MindIE推理引擎上实现高效推理,但在实际操作中,部署流程与常见问题困扰着不少开发者。本文将为你详细阐述昇腾Dee…...
安全面试5
文章目录 sql的二次注入在linux下,现在有一个拥有大量ip地址的txt文本文档,但是里面有很多重复的,如何快速去重?在内网渗透中,通过钓鱼邮件获取到主机权限,但是发现内网拦截了tcp的出网流量,聊一…...
【Python量化金融实战】-第2章:金融市场数据获取与处理:2.1 数据源概览:Tushare、AkShare、Baostock、通联数据(DataAPI)
本章将详细介绍四大主流金融数据源(Tushare、AkShare、Baostock、通联数据(DataAPI)),分析其特点与适用场景,并通过实战案例展示数据获取与处理的全流程。 👉 点击关注不迷路 👉 点击…...
Exoplayer(MediaX)实现音频变调和变速播放
在K歌或录音类应用中变调是个常见需求,比如需要播出萝莉音/大叔音等。变速播放在影视播放类应用中普遍存在,在传统播放器Mediaplayer中这两个功能都比较难以实现,特别在低版本SDK中,而Exoplayer作为google官方推出的Mediaplayer替…...
服务器间迁移conda环境
注意:可使用迁移miniconda文件 or 迁移yaml文件两种方式,推荐前者,基本无bug! 一、迁移miniconda文件: 拷贝旧机器的miniconda文件文件到新机器: 内网拷贝:scp -r mazhf192.168.1.233:~/miniconda3 ~/ 外…...
docker高级
文章目录 1.Docker Compose1.1 介绍1.2 compose文件1.3 常用命令1.4 安装1.5 项目说明和构建1.5.1 手工启动1.5.2 compose 编排启动1.5.3 完善 compose.yml1.5.4 加入前端容器 2.UI管理平台2.1 portainer 3.镜像发布3.1 阿里云3.2 Docker Registry3.2.1 介绍3.2.2 安装3.2.3 测…...
Redis Stream基本使用及应用场景
一、概念 Redis Streams是Redis5.0提供的一种消息队列机制,支持多播的可持久化的消息队列,用户实现发布订阅的功能,借鉴了kafka设计。 二、常用命令 命令名称描述XADD key ID field value [field value ...]添加一条消息 key:St…...
Claude端到端测试设计终极清单:覆盖17类非功能需求(含延迟敏感度分级、幻觉熔断阈值、多轮对话状态持久化验证)
更多请点击: https://kaifayun.com 第一章:Claude端到端测试设计的演进逻辑与核心范式 Claude端到端测试并非静态产物,而是随模型能力边界拓展、交互场景复杂化及可靠性要求升级而持续演化的工程实践。其演进逻辑根植于三个关键张力…...
告别鼠标点击,微博图片批量下载的轻松方案
告别鼠标点击,微博图片批量下载的轻松方案 【免费下载链接】weiboPicDownloader Download weibo images without logging-in 项目地址: https://gitcode.com/gh_mirrors/we/weiboPicDownloader 还记得那个周末的下午吗?你喜欢的博主发布了九宫格美…...
League Akari:如何通过LCU API实现英雄联盟游戏流程的智能化管理?
League Akari:如何通过LCU API实现英雄联盟游戏流程的智能化管理? 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit Leag…...
基于Meshtastic构建LoRa Mesh网络:从硬件自制到传感器集成实战
1. 项目概述:构建一个灵活且易用的LoRa Mesh网络 如果你对物联网、远程传感或者去中心化通信网络感兴趣,那么LoRa技术一定不会陌生。它以其超低功耗、超远距离和强大的抗干扰能力,成为了构建广域传感网络的理想选择。然而,传统的…...
利用 Taotoken 多模型能力为智能客服场景提供备份路由
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 利用 Taotoken 多模型能力为智能客服场景提供备份路由 智能客服系统是许多企业与用户交互的关键入口,其响应能力和服务…...
如何快速实现U盘文件自动备份:USBCopyer终极指南
如何快速实现U盘文件自动备份:USBCopyer终极指南 【免费下载链接】USBCopyer 😉 用于在插上U盘后自动按需复制该U盘的文件。”备份&偷U盘文件的神器”(写作USBCopyer,读作USBCopier) 项目地址: https://gitcode.…...
基于STM32WL与LoRaWAN的远程空气质量监测系统全栈开发实践
1. 项目概述:构建一个远程空气质量监测系统最近在做一个挺有意思的玩意儿:一个能自己找地方待着、靠太阳能供电,然后把周围空气数据悄无声息传回来的远程监测终端。核心想法很简单,就是想知道某个犄角旮旯,比如工厂周边…...
Fiddler手机断网真相:TLS握手与证书固定的协议级拦截
1. 为什么Fiddler一开,手机就断网?这不是配置问题,是协议层的“信任危机”Fiddler抓包手机流量,本该是移动开发、测试、安全分析中最基础的操作之一。但几乎每个刚上手的人,都会在第二天早上发现:手机Wi-Fi…...
CI/CD流水线中的幽灵依赖——DeepSeek项目92%存在未声明的transitive risk,你中招了吗?
更多请点击: https://intelliparadigm.com 第一章:CI/CD流水线中的幽灵依赖——DeepSeek项目92%存在未声明的transitive risk,你中招了吗? 在现代CI/CD实践中,开发者常误以为 package.json 或 requirements.txt 中显式…...
yuzu模拟器:在PC上完美运行Switch游戏的终极解决方案
yuzu模拟器:在PC上完美运行Switch游戏的终极解决方案 【免费下载链接】yuzu 任天堂 Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu 想要在电脑上体验任天堂Switch游戏的魅力吗?yuzu模拟器作为目前最成熟的开源Switch模拟…...
