SQL 语言:数据控制
文章目录
- 概述
- 授权(GRANT)
- 销权(REVOKE)
- 总结
概述
SQL语言中的数据控制权限分配是数据库管理的重要组成部分,它涉及到如何合理地为用户分配对数据库资源的访问和使用权限。
- 权限类型:在SQL中,权限主要分为两类,即系统权限和对象权限。系统权限允许用户执行特定的数据库操作,如创建或删除数据库、修改数据库结构等。对象权限则更具体,它涉及到对特定数据库对象的操作,如对表、视图、存储过程等的SELECT、INSERT、UPDATE、DELETE权限。
- 权限分配:权限可以通过GRANT语句分配给用户或角色。通过将权限授予角色,然后再将角色分配给用户,可以简化权限管理。权限的分配可以是多层次的,即超级用户可以将权限授予其他用户,而那些用户也可以将他们的一部分或全部权限授予其他用户。
- 权限回收:使用REVOKE语句可以删除以前授予的权限。这可以用于限制用户的访问,或者在员工离职时确保他们不再有权限访问数据库。
- 权限的级联:在某些数据库系统中,权限的分配和回收可以设置为级联。这意味着当一个用户被授予权限,这些权限也会自动授予该用户创建的所有对象。同样,当从一个用户撤销权限时,该用户的所有对象也将失去相应的权限。
- 权限和安全性:权限分配不仅关系到数据库的正常使用,也直接影响到数据库的安全性。合理的权限分配可以防止未授权访问和数据泄露,是保护数据不被恶意攻击的重要手段。
- 权限和数据完整性:适当的权限分配有助于维护数据完整性。通过限制对数据的写入和修改权限,可以确保只有具备相应权限的用户才能修改数据,从而减少数据损坏的风险。
- 权限和审计:权限分配还与审计有关。数据库管理员可以通过审查权限分配情况来监控和评估数据库的安全状况。
- 权限管理的实际操作:在实际操作中,数据库管理员需要定期审查和更新权限分配,以适应不断变化的业务需求和安全环境。这可能包括添加新用户、删除旧用户、调整权限级别等。
本文要讲的数据控制是控制用户对数据的操作和存储权力,是由 DBA 来决定的。DBMS 数据控制应具有如下功能:
(1)通过 GRANT 和 REVOKE 将授权通知系统,并存入数据字典。
(2)当用户提出请求时,根据授权情况检查是否执行操作请求。
SQL标准包括 DELETE、INSERT、SELECT 和 UPDATE 权限。SELECT 权限对应于 READ 权限,SQL 还包括了 REFERENCES 权限,用来限制用户在创建关系时定义外码的能力。
授权(GRANT)
授权语法格式:
GRANT <权限>[,<权限>]...
[ON<对象类型><对象名>]
TO <用户>[,<用户>]...
[WITH GRANT OPTION];
注意:若指定了 WITH GRANT OPTION 子句,那么获得了权限的用户还可以将权限赋给其他用户;接受权限的用户可以是单个或多个具体的用户,PUBLIC 参数可将权限赋给全体用户。不同类型的操作对象有不同的操作权限,常见的操作权限如下所示:

示例1. 如果用户要求把数据库SPJ中供应商S、零件P、项目J表赋予各种权限。各种授权要求如下:
(1) 将对供应商S、零件P、项目J的所有操作权限赋给用户 USER1 及 USER2。
(2) 将对供应商S的插入权限赋给用户 USER1,并允许将此权限赋给其他用户。
(3) DBA 把数据库 SPJ 中建立表的权限赋给用户 USER1。
参考答案:
(1)GRANT ALL PRIVILEGES ON TABLE S,P,J TO USER1,USER2;
(2)GRANT INSERT ON TABLE S TO USER1 WITH GRANT OPTION;
(3)GRANT CREATE TABLE ON DATABASE SPJ TO USER1;
销权(REVOKE)
销权语法格式:
REVOKE <权限>[,<权限>]...
[ON<对象类型><对象名>]
FROM <用户>[,<用户>]...
[RESTRICT|CASCADE];
其中:RESTRICT 表示只收回指定用户的权限,默认;CASCADE 表示收回指定用户及其授予的其他用户的该权限。
示例2. 要求回收用户对数据库SPJ中供应商S、零件P、 项目J表的操作权限。各种收回权限的要求如下:
(1) 将用户USER1 及USER2对供应商S、零件P、项目J的所有操作权限收回。
(2) 将所有用户对供应商S的所有查询权限收回 。
(3)将USER1 用户对供应商S的供应商编号Sno的修改权限收回。
参考答案:
(1) REVOKE AL PRIVILEGES ON TABLE S,P,J FROM USER1, USER2;
(2) REVOKE SELECT ON TABLE S FROM PUBLIC;
(3) REVOKE UPDATE(Sno) ON TABLE S FROM USER1;
示例3. 收回用户LI对表EMPLOYEE的查询权限,同时级联收回LI授予其他用户的该权限,SQL语句为: (1) SELECT ON TABLE EMPLOYEE FROM LI (2) ;
(1) A.GRANT B.GIVE C.CALL BACK D. REVOKE
(2) A.RESTRICT B.CASCADE C.WITH GRANT OPTION D. WITH CHECK OPTION
答案:(1)的正确选项为D,(2)的正确选项为B。
总结
总之,SQL语言提供了一套全面的数据控制机制,包括数据安全性、完整性、并发和恢复控制,使得数据库管理员能够有效地管理和维护数据库系统。通过合理地设置和使用这些控制机制,可以确保数据库的稳定性、可靠性和安全性,从而为应用程序和最终用户提供一致和可信的数据服务。
相关文章:
SQL 语言:数据控制
文章目录 概述授权(GRANT)销权(REVOKE)总结 概述 SQL语言中的数据控制权限分配是数据库管理的重要组成部分,它涉及到如何合理地为用户分配对数据库资源的访问和使用权限。 权限类型:在SQL中,权限主要分为…...
『ZJUBCA Weekly Feed 07』MEV | AO超并行计算机 | Eigen layer AVS生态
一文读懂MEV:区块链的黑暗森林法则 01 💡TL;DR 这篇文章介绍了区块链中的最大可提取价值(MEV)概念,MEV 让矿工和验证者通过抢先交易、尾随交易和三明治攻击等手段获利,但也导致网络拥堵和交易费用增加。为了…...
正点原子延时函数delay_ms延时失效的原因
1、问题陈述 今天在测试小车程序的时候使用了如下代码,发现延时并没有达到期望的4s,而是仅仅延时了0.4s左右,本来以为少加了个0,最后在我多次测试下来,发现在延时大约超过2s的时候就会失效。 while(1){Set_Pwm(6000,60…...
MySQL 满足条件函数中使用查询最大值函数
在实际的数据库操作中,我们常常需要根据某些条件找到最大值并据此进行下一步的操作。例如,在一个包含订单信息的表中,可能需要找到特定客户的最大订单金额,并据此进行某些统计或决策。MySQL 提供了多种函数和查询方法,…...
Java | Leetcode Java题解之第101题对称二叉树
题目: 题解: class Solution {public boolean isSymmetric(TreeNode root) {return check(root, root);}public boolean check(TreeNode u, TreeNode v) {Queue<TreeNode> q new LinkedList<TreeNode>();q.offer(u);q.offer(v);while (!q.…...
【区块链】智能合约漏洞测试
打开Ganache vscode打开智能合约漏洞工程 合约内容 pragma solidity >0.8.3;contract EtherStore {mapping(address > uint) public balances;function deposit() public payable {balances[msg.sender] msg.value;emit Balance(balances[msg.sender]);}function with…...
大模型主流 RAG 框架TOP10
节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 总结链接…...
第八次javaweb作业
我们小组课程设计的题目是:超市管理系统,我认领的模块是:商品信息管理 controller package com.example.supermarker.controller;import com.example.supermarker.pojo.MerchInfo; import com.example.supermarker.pojo.PageBean; import c…...
js积累四 (读json文件)
function ReadRadioJson() {var url "../radio.json" //json文件url,本地的就写本地的位置,如果是服务器的就写服务器的路径var request new XMLHttpRequest();request.open("get", url, false); //设置请求方法与路径request.sen…...
关于我转生从零开始学C++这件事:升级Lv.25
❀❀❀ 文章由不准备秃的大伟原创 ❀❀❀ ♪♪♪ 若有转载,请联系博主哦~ ♪♪♪ ❤❤❤ 致力学好编程的宝藏博主,代码兴国!❤❤❤ OK了老铁们,又是一个周末,大伟又来继续给大家更新我们的C的内容了。那么根据上一篇博…...
mysql中text,longtext,mediumtext区别
文章目录 一.概览二、字节限制不同三、I/O 不同四、行迁移不同 一.概览 在 MySQL 中,text、mediumtext 和 longtext 都是用来存储大量文本数据的数据类型。 TEXT:TEXT 数据类型可以用来存储最大长度为 65,535(2^16-1)个字符的文本数据。如果存储的数据…...
IP协议说明
文章目录 前言一、IP协议的简介二、IP数据报1.IP 数据报结构2.IP 数据报的分片解析3.IP 数据报的分片重装 三、IP 数据报的输出四、IP 数据报的输入 前言 IP 指网际互连协议, Internet Protocol 的缩写,是 TCP/IP 体系中的网络层协议。设计 IP 的目的是…...
第13章 层次式架构设计理论与实践
层次式架构的核心思想是将系统组成为一种层次结构,每一层为上层服务,并作为下层客户。其实不管是分层还是其他的架构都是为了解耦,更好的复用,只要秉承着这种思想去理解一切都迎刃而解了。 13.1 层次上体系结构概述 回顾一下软件…...
FreeRtos进阶——消息队列的操作逻辑
消息队列(queue) 在不同的任务之间,如果我们需要互相之间通信,使用全局变量进行通信,是一种不安全的通信的方式。为保证线程安全,我们需要引入消息队列的通信方式。 粗暴的消息队列 为保证线程的安全&am…...
WordPress搭建流程
1. 简介 WordPress 是一个 PHP 编写的网站制作平台。WordPress 本身免费,并且拥有众多的主题可以使用,适合用于搭建个人博客、公司官网、独立站等。 2. 环境准备 2.1 WordPress 下载 WordPress 可以在 Worpress中文官网 下载(如果后续要将后台调成中文的话,一定要从中文…...
数据集004:跌倒检测数据集 (含数据集下载链接)
数据集简介: 该数据集为跌倒检测数据集,属于imageclassify任务,分为fall和nofall两大类,累计共1000张图片,均为人工标注 xml格式,可用于yolo训练。 数据集链接:跌倒检测数据集(1000…...
苹果与OpenAI合作在即:iOS 18中的ChatGPT引发期待与担忧
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
Android 逆向学习【2】——APK基本结构
APK安装在安卓机器上的,相当于就是windows的exe文件 APK实际上是个压缩包 只要是压缩的东西 .jar也是压缩包 里面是.class(java编译后的一些东西) APK是Android Package的缩写,即Android安装包。而apk文件其实就是一个压缩包,我们可以将apk文件的后…...
你对仲裁裁决不服怎么办?我教你四个狠招!
你对仲裁裁决不服怎么办?我教你四个狠招! 这个标题是什么意思呢?也就是说,当你(或用人单位)向劳动仲裁委提出仲裁申请后,但劳动仲裁结果没有维护你的权益,或者你不满意,…...
绿色智能:低代码开发在AI机器学习中的深度应用与实践案例
随着科技的飞速进步,软件开发的方式也在不断演变。其中,低代码开发作为一种新兴的编程方式,以其高效、便捷的特性受到了广泛关注。同时,AI机器学习技术的发展也为软件开发带来了新的可能。本文将简要介绍低代码开发的概念…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果.ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...
redis和redission的区别
Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
消息队列系统设计与实践全解析
文章目录 🚀 消息队列系统设计与实践全解析🔍 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡💡 权衡决策框架 1.3 运维复杂度评估🔧 运维成本降低策略 🏗️ 二、典型架构设计2.1 分布式事务最终一致…...
