海量智库 | ANY权限原理介绍

news2024/11/28 20:40:39

ANY权限是Vastbase中的一种特殊的管理权限,用户能够通过ANY权限执行更广泛的操作,更加便利的管理数据库。

本文将为您介绍ANY权限管理的相关原理。


ANY权限管理相关解释

ANY权限管理,是对数据库内的某一类对象的所有实体进行特定的权限管理

例如执行如下语句:

GRANT SELECT ANY TABLE TO USER1;

就表示用户USER1拥有对当前数据库中所有的表进行SELECT操作的权限,但没有对其他数据库中的任意表进行SELECT操作的权限。

ANY权限管理的原理

权限再授权权限

用户拥有把授予他的ANY权限再授予其他用户的权限的权限。

用户拥有权限的角色列表

当执行grant u1 to u2,表示将角色u1授予u2,那么u2会拥有u1的所有权限。这样的所有被授予用户u2的角色就是用户拥有权限的角色列表。

一、权限信息的记录

ANY权限信息存储在系统表gs_db_privilege,每一个ANY权限对应gs_db_privilege表中的一个元组。由被授权者的OID、被授予的ANY权限是否拥有将该权限授予其他用户的权限三部分组成。

字段解释:

ANY权限的授予和回收,对应的是gs_db_privilege系统表中数据的增加和删除。

二、权限授予

权限授予有两个操作方式:

(1)授予ANY权限,例如:

GRANT SELECT ANY TABLE TO USER1;

(2)授予ANY权限并授予权限再授权权限(admin option),例如:

GRANT SELECT ANY TABLE TO USER1 WITH ADMIN OPTION;

权限授予流程如下所示:

  1. 检查要授予用户的ANY权限是否存在。若不存在,构造一条新的权限记录数据插入到系统表gs_db_privilege中并结束;若存在,则执行步骤2
  2. 判断是否需要给该目标用户添加再授予权限。若不是则直接退出结束,若是则执行步骤3
  3. 更新系统表gs_db_privilege该权限信息中的admin_option字段为true

三、权限回收

对应于权限授予,权限回收也有两种用法:

(1)仅回收权限再授权权限,例如:

REVOKE ADMIN OPTION FOR SELECT ANY TABLE FROM USER1;

(2)回收ANY权限,例如:

REVOKE SELECT ANY TABLE FROM USER1;

流程如下图所示:

  1. 判断要回收的权限的是否存在,若不存在则结束返回;若存在则执行步骤2
  2. 判断是仅回收权限的再授权权限,还是回收整个权限。若仅回收权限再授权权限,则执行步骤3;否则执行步骤4
  3. 更新权限信息,将权限再授权权限字段admin_option修改为false
  4. 从系统表gs_db_privilege中删除该条权限信息

四、权限检查 

ANY权限检查就是在用户访问对象时,检查用户是否拥有对对象进行操作的ANY权限。流程如下图所示:

  1. 根据本次访问的对象和操作转换为需要的ANY权限。例如执行select * from t1,根据select操作和查询的是表,转换为“select ANY table”权限
  2. 获取到当前执行用户拥有权限的所有角色列表
  3. 遍历列表中的每一个角色
  4. 对每一个角色,根据其OID和本次操作需要的ANY权限从gs_db_privilege系统表中查询角色是否拥有ANY权限
  5. 如果未查询到结果,说明当前被遍历的角色没有本次操作需要的ANY权限,直接进入下一次循环,继续步骤4检查角色列表中的下一个角色;如果查询到结果,说明当前被遍历的角色拥有本次操作需要的ANY权限
  6. 继续判断本次操作是否是授予/回收ANY权限操作,如果不是,权限检查已经通过,返回结果为有权限;如果是,则进入下一步判断
  7. 判断当前被遍历角色拥有的ANY权限的admin_option属性是否为true,为true则表示角色有对当前ANY权限再授权/回收的操作,返回结果为有权限;为false则表示角色没有对当前ANY权限再授权/回收的操作,那么进入下一次循环,继续步骤4检查角色列表中的下一个角色

通过以上操作,可以随时调整ANY权限的授予和回收,提升用户对数据库操作的能力和灵活性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1576788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据产品+AI产品 通关上岸,创建能带来商业价值的AI产品,学习AI产品开发

数据产品 AI产品 通关上岸,创建能带来商业价值的AI产品,学习AI产品开发流程 数据产品+AI产品 通关上岸,创建能带来商业价值的AI产品,学习AI产品开发 - 百创网-源码交易平台_网站源码_商城源码_小程序源码 人工智能快速渗入到各个行业,AI产品经理缺口高达6.8万,成为稀缺…

数字电子基础——编码器

编码器 编码:用文字、符号或数字表示特定对象的过程。在数字电路中,采用二进制进行编码 编码器:实现编码功能的电路 二进制编码器 用 n n n 位二进制代码对 N 2 n N2^n N2n 个信号进行编码的电路 应用举例 【例】设计一个能将 I 0 、…

【cocos creator】【编辑器插件】cocos creator文件复制时,解决cocos creator uuid冲突

!!!修改前先备份 1、将文件夹放在packages文件夹下 2、打开项目,选择要刷新uuid的文件夹 3、菜单栏点击 扩展->refresh-uuid 4、等控制台提示:资源uuid刷新完成,重启项目(!&#…

JavaScript(二)-Web APIS

文章目录 Web API 基本认知作用和分类什么是DOMDOM树DOM对象获取DOM对象操作元素内容操作元素属性操作元素常用属性操作元素样式属性自定义属性 定时器-间歇函数定时器函数的理解定时器函数使用间歇函数 事件监听与绑定事件监听事件监听版本事件类型事件对象什么是事件对象获取…

转让名称带中国的金融控股集团公司要多少钱

随着公司的发展和市场竞争的影响,越来越多的创业者希望注册一家好名称的公司,以提高企业知名度和竞争力。但是,注册中字头无地域公司需要满足一定的条件和流程。本文将对中字头无地域公司注册条件及流程进行详细的介绍。可以致电咨询我或者来…

Sketch是免费软件吗?这款软件支持导入!

Sketch 是一款针对网页、图标、插图等设计的矢量绘图软件。Sketch 的操作界面非常简单易懂,帮助全世界的设计师创作出许多不可思议的作品。但是同时,Sketch 也有一些痛点:使用 Sketch 需要安装 InVision、Abstract 、Zeplin 等插件&#xff0…

粉丝答疑:电脑蓝屏了怎么办?

昨天大白在直播的时候,有粉丝朋友在直播间问到了大白电脑蓝屏了怎么办?今天也特意帮粉丝朋友整理和收集了常见电脑蓝屏代码大全。 电脑蓝屏代码大全及解决办法合集 代码 含意 0 0x00000000 作业完成。 1 0x00000001 不正确的函数。 2 0x00000002 系…

qt自定义窗口在拖动过程中出现抖动且拖动后位置看上去不对

自定义窗口拖动 引言开发环境关键性代码运行结果原因分析改进代码运行结果globalPos()globalPosition()再次修改代码运行结果区别 引言 本文旨在一个问题的记录:自定义窗口拖动的过程中,窗口不能很好的跟随鼠标移动,此外会出现窗口拖动时抖动…

剑指Offer题目笔记29(动态规划矩阵路径问题)

面试题98: 问题: ​ 一个机器人从m x n的格子的左上角出发,它每一步只能向下走或者向右走,计算机器人从左上角到达右下角的路径数量。 解决方案: 机器人每走一步都有两个选择,要么向下走要么向右走。一个任务需要多…

curl下载nexus中的jar包

下载并保持原名称 curl -u admin:password -O "http://127.0.0.1:8081/repository/maven-snapshots/com/edgej/edgej-modules-research/1.0-SNAPSHOT/edgej-modules-research-1.0-20240407.090116-1.jar"下载并重命名 curl -u admin:password -o "edgej-modul…

利用Leaflet + React:构建WEBGIS

React是 Facebook 开发的一个开源库,用于构建用户界面。就其本身而言,Leaflet是一个用于将地图发布到网络的JavaScript 库。这两个工具的组合很简单,允许您创建动态网络地图。在本文中,我们将看到这种组合的一些特征以及一些简单的…

【C++】详解vector二维数组的全部操作(超细图例解析!!!)

目录 一、前言 二、 深度理解vector 的二维数组(重点!) 三、vector 二维数组的空间理解(重点!) ✨问题分析 ✨如何合理定制vector的内存空间 四、vector 二维数组的初始化 五、vector 二维数组的 添加…

宝宝眼部健康,斗鸡眼小心防护

引言: 新生儿期间,宝宝的眼睛需要特别关注和呵护,因为眼睛是宝宝感知世界的窗户。斗鸡眼,即眼球表面的角膜上形成的小疙瘩,虽然在新生儿中比较罕见,但家长们仍然需要了解斗鸡眼的相关知识,并采取…

Vue 有哪些主要的指令修饰符

目录 1. 什么是指令修饰符 2. 指令修饰符有哪些 2.1. 按键修饰符 2.2. v-model修饰符 2.3. 事件修饰符 1. 什么是指令修饰符 通过 "." 指明一些指令 后缀,不同 后缀 封装了不同的处理操作 目的:简化代码 2. 指令修饰符有哪些 2.1. 按键…

让chatGPT控制物理设备

作为自动控制行业的工程师,我们也许最关心的是如何使chatGPT 控制物理设备。我发现许多人仍然停留在传统程序设计的思维阶段,比如让大模型编写一段PLC 代码,或者是生成一些信息模型。 其实大模型具备判断与思考的能力,AI …

尚硅谷html5+css3(2)CSS5基本知识

1.网页分为三个部分: 结构:HTML 表现:CSS 行为JavaScript CSS:层叠样式表,网页实际上是一个多层结构,通过CSS可以分别为网页的每一个层来设置样式,最终用户只看最上面的一层,总之&#xff0…

适用于 Windows 10 的 10 大免费数据恢复软件

数据丢失可能是一场噩梦,尤其是在涉及重要文件和文档时。无论是由于意外删除、系统崩溃还是病毒攻击,找到适合 Windows 10 的文件夹恢复软件都可以在恢复丢失的数据方面发挥重要作用。在本指南中,我们将探索适用于 Windows 10 用户的 10 大免…

景区云旅游/视频慢直播方案设计与平台搭建

一、行业背景 经文化和旅游部数据中心测算,今年清明节假期3天全国国内旅游出游1.19亿人次,按可比口径较2019年同期增长11.5%;国内游客出游花费539.5亿元,较2019年同期增长12.7%。踏青赏花和户外徒步成为假期的热门出游主题。随着…

Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066

很奇怪的问题,在使用nifi的时候碰到的,这里是用NIFI,把数据从postgresql中同步到mysql中, 首先postgresql中的源表,中是没有create_time这个字段的,但是同步的过程中报错了. 报错的内容是说,目标表中有个create_time字段,这个字段是必填的,但是传过来的flowfile文件中,的数据没…

Windows命令行关机操作

cmd相关备忘 1. 导语2. Windows本命操作3. 实用命令集合3.1. 一段时间后关机3.2. 立即关机命令3.3. 一段时间后重启3.4. 休眠命令3.5. 取消指令 😉 记录一些不常用有的时候很救命的cmd命令 1. 导语 不知道小伙伴们有么有遇到过这样尴尬的时候,电脑的鼠标…