当前位置: 首页 > news >正文

MySQL 数据库安全性练习题

数据库安全性

d50183d4e3464273b7339cb64c03daed.jpg

一、实验目的

(1)熟悉通过MySQL对数据进行安全性控制

 

二、实验环境

Windows 11

MySQL  Navicat

 

三、实验内容

今有以下两个关系模式:

        职工(职工号,姓名,年龄,职务,工资,部门号)

        部门(部门号,名称,经理名,地址,电话号)

请用SQL的GRANT语句 和REVOKE语句(加上视图机制)实现以下授权定义或存取控制功能:

( 1 )用户王明对两个表有SELECT 权限。

( 2 )用户李勇对两个表有INSERT 和DELETE 权限。

( 3 )  每个职工只对自己的记录有SELECT 权限。

( 4 )用户刘星对职工表有SELECT 权限,对“工资”字段具有更新权限。

( 5 )用户张新具有修改这两个表的结构的权限。

( 6 )用户周平具有对两个表所有权限(读,插,改,删数据),并具有给其他用户授权的权限。

( 7 )用户杨兰具有从每个部门职工中SELECT 最高工资、最低工资、平均工资的权限,他不能查看每个人的工资。

 

四、实验步骤

(1)创建两张表

CREATE TABLE 部门 (部门号 CHAR(10) PRIMARY KEY,名称 CHAR(16),经理名 CHAR(10),地址 CHAR(50),电话号 CHAR(11)
);CREATE TABLE 职工 (职工号 CHAR(10) PRIMARY KEY,姓名 CHAR(10),年龄 SMALLINT,职务 CHAR(12),工资 NUMERIC(8,2),部门号 CHAR(10),FOREIGN KEY ( 部门号 ) REFERENCES 部门(部门号)
);

(2)增添数据

INSERT INTO 部门 VALUES('BM001','部门一','经理一','地址一','12345678901');
INSERT INTO 部门 VALUES('BM002','部门二','经理二','地址二','12345678902');
INSERT INTO 部门 VALUES('BM003','部门三','经理三','地址三','12345678903');INSERT INTO 职工 VALUES('ZG001','王明',31,'职位一',11000,'BM001');
INSERT INTO 职工 VALUES('ZG002','李勇',32,'职位二',12000,'BM002');
INSERT INTO 职工 VALUES('ZG003','刘星',33,'职位三',13000,'BM003');
INSERT INTO 职工 VALUES('ZG004','张新',34,'职位四',14000,'BM002');
INSERT INTO 职工 VALUES('ZG005','周平',35,'职位五',15000,'BM003');
INSERT INTO 职工 VALUES('ZG006','杨兰',36,'职位六',16000,'BM001');

(3)创建用户

CREATE USER 王明 IDENTIFIED BY '123456';
CREATE USER 李勇 IDENTIFIED BY '123456';
CREATE USER 刘星 IDENTIFIED BY '123456';
CREATE USER 张新 IDENTIFIED BY '123456';
CREATE USER 周平 IDENTIFIED BY '123456';
CREATE USER 杨兰 IDENTIFIED BY '123456';

(4)进行下列操作:

-- 1. 用户王明对两个表有SELECT权限

GRANT SELECT 
ON TABLE 职工
TO 王明;GRANT SELECT 
ON TABLE 部门
TO 王明;

-- 2. 用户李勇对两个表有INSERT和DELETE权限

GRANT INSERT, DELETE
ON TABLE 职工
TO 李勇;GRANT INSERT, DELETE
ON TABLE 部门
TO 李勇;

-- 3. 每个职工只对自己的记录有SELECT权利

CREATE VIEW 职工视图 
AS
SELECT * 
FROM 职工 
WHERE concat(姓名,'@localhost') = USER();GRANT SELECT 
ON 职工视图
TO 王明,李勇,刘星, 张新,周平,杨兰;

-- 4. 用户刘星对职工表有SELECT权限, 对工资字段有更新权限

GRANT SELECT, UPDATE(工资)
ON TABLE 职工
TO 刘星;

-- 5. 用户张新具有修改两个表结构权限

GRANT ALTER 
ON TABLE 职工
TO 张新;GRANT ALTER
ON TABLE 部门
TO 张新;

-- 6. 用户周平具有对两个表的所有权限(读、插、改、删数据),并具有给其他用户授权的权限

GRANT ALL PRIVILEGES
ON TABLE 职工
TO 周平
WITH GRANT OPTION;GRANT ALL PRIVILEGES
ON TABLE 部门
TO 周平
WITH GRANT OPTION;

-- 7. 用户杨兰具有从每个部门职工中SELECT最高工资、最低工资、平均工资的权限但不能查看每个人的工资

CREATE VIEW 部门工资(名称,最高工资,最低工资,平均工资)
AS
SELECT `部门`.`名称`, MAX(`工资`), MIN(`工资`), AVG(`工资`)
FROM `职工`, `部门`
WHERE `职工`.`部门号` = `部门`.`部门号`
GROUP BY `职工`.`部门号`;GRANT SELECT
ON 部门工资
TO 杨兰;

 

五、效果图

e93ce8df0baf4009953fc2d93baac942.png

da15edc94a3240f8ac352c8aaa7480bd.png

2fab2845f4774781b6590fb422382229.png

50b24aae85034d2191bab4f4a12b217c.png

 

 

 

 

相关文章:

MySQL 数据库安全性练习题

数据库安全性 一、实验目的 (1)熟悉通过MySQL对数据进行安全性控制 二、实验环境 Windows 11 MySQL Navicat 三、实验内容 今有以下两个关系模式: 职工(职工号,姓名,年龄,职务,工…...

如何使用Node.js快速创建HTTP服务器并实现公网访问本地Server

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…...

zigbee路灯无线通讯机制

zigbee路灯无线通讯机制 wang20160630 前言 目前路灯上通讯主要有电力载波和无线通讯;各有利弊,众说纷纭;本文不对两种技术进行比较,也不讨论哪种好,毕竟同种通讯模块,有的开发出来稳定,有的…...

asp.net docker-compose添加kafka和redis和zookeeper

docker-compose.yml添加 redis:image: redis:alpinekafka:image: "bitnami/kafka:3.1.1"depends_on:- zookeeperzookeeper:image: "bitnami/zookeeper:3.5.10" docker-compose.override.yml添加 redis:ports:- "6379"kafka:links: - zookeepere…...

2024上海国际人工智能展(CSITF)“创新驱动发展·科技引领未来”

人工智能(Artificial Intelligence,AI)作为当今世界科技发展的关键领域之一,正不断推动着各行各业的创新和变革。作为世界上最大的消费市场之一,中国正在积极努力将AI技术与产业融合并加速推广应用。在这个背景下&…...

汽车标定技术(三)--XCP协议如何支持测量功能

目录 1. 概述 2. 测量方式 -- Poll 3. 测量方式 -- DAQ 3.1 ODT概念模型 3.2 DAQ List概念 3.3 ODT 绝对编号和相对编号 3.4 静态DAQ和动态DAQ模式 (1)静态DAQ (2)动态DAQ 4.小结 1. 概述 在该系列的首篇文章汽车标定技…...

[c++]你最喜爱的stringstream和snprintf性能深入剖析

最近写一个程序中两个差不多的模块,一个使用了snprintf输出中间数据,另一个偷懒使用stringstream。结果你猜怎么着?居然压帧了!!到底是谁拖了性能的后退? 来自阿里云的性能分析实验 我上网一搜&#xff0…...

windows 用vs创建cmake工程并编译opencv应用项目生成exe流程简述

目录 前言一、安装opencv(1)下载(2)双击安装(3)环境变量和system文件夹设置 二、打开vs创建项目三、编辑cpp,.h,cmakelist.txt文件(1)h文件(2&…...

QML 仪表盘小示例

本次项目已发布在CSDN->GitCode,下载方便,安全,可在我主页进行下载即可,后面的项目和素材都会发布这个平台。 个人主页:https://gitcode.com/user/m0_45463480怎么下载:在项目中点击克隆,windows:zip linux:tar.gz tar # .pro TEMPLATE = appTARGET = dialcontrol​#…...

力扣206. 反转链表

题目: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head [1,2] 输出:[2,1] 示例 3:…...

深度学习之基于Tensorflow卷积神经网络花卉识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 深度学习是一种机器学习方法,它通过模拟人脑神经网络的结构和功能来实现对数据的自动分析和学习。卷积神…...

leetcode链表

这几天手的骨裂稍微好一点了,但是还是很疼,最近学校的课是真多,我都没时间做自己的事,但是好在今天下午是没有课的,我也终于可以做自己的事情了。 今天分享几道题目 移除链表元素 这道题我们将以两种方法开解决&…...

Kali Linux渗透测试的艺术

Kali Linux(Kali)是专门用于渗透测试的Linux操作系统,它由BackTrack 发展而来。在整合了IWHAX、WHOPPIX 和Auditor 这3 种渗透测试专用Live Linux 之后,BackTrack正式改名为Kali Linux。 BackTrack是相当著名的Linux发行版本。在…...

2023年最新版潮乎盲盒源码含搭建教程

后台开发语言:后端 Laravel 框架开发 前端开发框架:uniappvue 环境配置: php7.4 mysql5.6 nginx1.22 redis(建议宝塔面板或 lnmp) 源码获取请自行百度:一生相随博客 一生相随博客致力于分享全网优质资源&#x…...

[GitLab] 安装Git 指定版本

卸载旧版本 检查是否已经安装 git --version如果已经安装,先卸载 yum -y remove git安装新版本 在GitHub上选择需要下载的版本 Git版本 在/usr/local/目录下新建文件夹:git,并在/usr/local/git/文件夹内下载压缩包 wget https://github…...

vue中ref和$refs

1.作用 利用ref 和 $refs 可以用于 获取 dom 元素 或 组件实例&#xff0c;也可以在父组件获取子组件&#xff0c;从而调用子组件的方法。 2.特点&#xff1a; 查找范围 → 当前组件内(更精确稳定) 3.语法 1.给要获取的盒子添加ref属性 <div ref"chartRef"&…...

CRM怎样帮助您的企业进行营销管理?

​ CRM助力企业营销管理&#xff0c;为企业降本增效提升投入产出比。CRM软件是如何实现的呢&#xff1f; 扩大线索量 想要精准获客的第一步是要扩大线索量&#xff0c;多渠道营销推广是很好的方法。例如&#xff1a; 1.线下展会线上Webinar等市场活动 2.搭建微信、微博、…...

Gerrrit 管理员常用命令

1. replication插件重新加载 当修改replication配置文件&#xff08;replication.config&#xff09;&#xff0c;需要重启gerrit生效&#xff0c;或者重新加载replication。 # 重新加载replication插件 ssh -p 29418 usernamegerrit.company.com gerrit plugin reload repli…...

深入理解强化学习——多臂赌博机:增量式实现

分类目录&#xff1a;《深入理解强化学习》总目录 至今我们讨论的动作—价值方法都把动作价值作为观测到的收益的样本均值来估计。下面我们探讨如何才能以一种高效的方式计算这些均值&#xff0c;尤其是如何保持常数级的内存需求和常数级的单时刻计算量。 为了简化标记&#x…...

视频批量混剪剪辑软件类似剪映设计一个模板后, 视频,图片,文字,转场,音频,特效都可以系统随机

随着自媒体时代的到来&#xff0c;越来越多的人加入到了视频创作行列。然而&#xff0c;视频剪辑是一项繁琐的任务&#xff0c;特别是当你需要批量处理多个视频时。为了提高效率&#xff0c;一款名为“视频闪闪”的批量剪辑软件应运而生。 www.shipinshanshan.com “视频闪闪”…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时&#xff0c;性能会显著下降。以下是优化思路和简易实现方法&#xff1a; 一、核心优化思路 减少 JOIN 数量 数据冗余&#xff1a;添加必要的冗余字段&#xff08;如订单表直接存储用户名&#xff09;合并表&#xff1a;将频繁关联的小表合并成…...