数据库的安全管理

数据库的安全管理

一、实验目的

  1. 掌握用户账号的创建、查看、修改、删除的方法。
  2. 掌握用户权限设置方法。
  3. 掌握角色的创建、删除方法。
    二、实验内容
  4. 用户账号的创建、查看、修改、删除的SQL语句。
  5. 用户权限设置SQL语句。
  6. 角色的创建、删除SQL语句。
    三、实验步骤
  7. 在本地主机创建用户账号st_01,密码为123456。
    CREATE user st_01@localhost IDENTIFIED by ‘123456’;
    2.查看MySQL下所有用户账号列表。
    USE mysql;
    SELECT * FROM user;
    在这里插入图片描述

3.修改用户账号st_01的密码为111111。
SET PASSWORD FOR st_01@localhost=‘111111’;
4. 使用studentsdb数据库中的student_info表。
(1)授予用户账号st_01查询表的权限。
GRANT SELECT ON TABLE studentsdb.student_info
TO st_01@localhost ;
(2)授予用户账号st_01更新家庭住址列的权限。
GRANT UPDATE(家族住址) ON TABLE student.student_info
TO st_01@localhost;
(3)授予用户账号st_01修改表结构的权限。
GRANT ALTER ON student.student_info
TO st_01@localhost;
5. 使用studentsdb数据库中的student_info表。
(1)创建存储过程cn_proc,统计student_info表中的学生人数。
DELIMITER @@
CREATE PROCEDURE cn_proc()
BEGIN
SELECT COUNT(*) FROM student_info;
END@@
DELIMITER;

(2)授予用户账号st_01调用cn_proc存储过程的权限。
GRANT EXECUTE ON PROCEDURE STUDENTDB.CN_PROC
TO st_01@localhost;
(3)以用户账号st_01连接MySQL服务器,调用cn_proc存储过程查看学生人数。
CALL CN_PROC();
在这里插入图片描述

  1. 使用studentsdb数据库。
    (1)授予用户账号st_01在studentsdb数据库上创建表、删除表、查询数据、插入数据的权限。
    (2)以用户账号st_01连接MySQL服务器,创建新表st_copy,与表student_info完全相同。
    (3)以用户账号st_01连接MySQL服务器,删除表st_copy。
    GRANT CREATE,DROP,SELECT,INSERT ON studentdb
    TO st_01@localhost;
    DROP TABLE st_copy;
    7.撤消用户账号st_01在studentsdb数据库上创建表、删除表、查询数据、插入数据的权限。
    REVOKE CREATE,DROP,SELECT,INSERT ON studentdb.student_info
    FROM st_01;
    8.撤消用户账号st_01所有权限.
    REVOKE ALL PRIVILEGES,GRANT OPTION
    FROM st_01@localhost;
  2. 使用studentsdb数据库中的student_info表。
    (1)创建本地机角色student。(MySQL 8.0版本可做)
    (2)授予角色student查询student_info表的权限。(MySQL 8.0版本可做)
    (3)创建本地机用户账号st_02,密码为123。
    (4)授予用户账号st_02角色student的权限。
    (5)以用户账号st_02连接MySQL服务器,查看student_info表信息。
    (6)撤消用户账号st_02角色student的权限。
    (7)删除角色student。(MySQL 8.0版本可做)
    use mysql;
    CREATE ROLE ‘student’@‘localhost’;
    (2)
    grant select on studentdb.student_info
    to ‘student’@‘localhost’;
    (3)
    create user st_02@localhost identied by ‘123’;
    (4)
    grant ‘student’@‘localhost’ to st_02@localhost;

(5)
select * from studentdb.student_info;
(6)
revoke all privileges,grant option
from ‘student’@‘localhost’;
(7)
drop role ‘student’@‘localhost’;
9.删除用户账号st_01、st_02。
DROP user st_01@localhost,st_02@localhost;
四、实验思考

  1. 用户账号、角色和权限之间的关系是什么?没有角色能给用户授予权限吗?
    给用户赋予角色,给角色赋予权限。没有角色不能给用户授予权限。
  2. 角色在用户账号连接服务器后自动被激活的设置方法。
    set global activate_all_roles_on_login=ON;
    4.with grant option选项的作用是什么?
    WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人。
    五、实验总结
    1、收获
    通过这次实验,掌握了用户创建和授权方法,理解了数据库安全性的内容,学会了创建登录用户并向其授予数据库访问权限。
    2、存在的问题
    刚开始时没有分清登录账号和用户账号之间的差别。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用vite框架封装vue3插件,发布到npm

目录 一、vue环境搭建 1、创建App.vue 2、修改main.ts 3、修改vite.config.ts 二、插件配置 1、创建插件 2、开发调试 3、打包配置 4、package.json文件配置 5、执行打包命令 pnpm build 6、修改index.d.ts 目录 一、vue环境搭建 1、创建App.vue 2、修改main.ts 3…

NOIP2018提高组day2 - T1:旅行

题目链接 [NOIP2018 提高组] 旅行 题目描述 小 Y 是一个爱好旅行的 OIer。她来到 X 国,打算将各个城市都玩一遍。 小 Y 了解到,X 国的 n n n 个城市之间有 m m m 条双向道路。每条双向道路连接两个城市。 不存在两条连接同一对城市的道路&#xff…

企事业单位宣传任务的考核稿和投稿有哪些网站?

企事业单位在宣传任务方面扮演着重要角色,他们不仅要向公众展示自己的实力和影响力,也需要提高自己的知名度和形象。在这个信息化时代,涌现出了许多网络平台,为企事业单位提供了更多的宣传机会。本文将介绍一家被广泛认可的投稿平…

模型Model:文件系统模型QFileSystemModel

一、 1、常用函数 QFileSystemModel自带目录变化监听 1)、 QModelIndex setRootPath(const QString &path); 设置检索根目录 2)、 bool isDir(const QModelIndex &index) const; 选中索引是否为目录节点 3)、 QString filePath(const QModelIndex &index) const;…

算法和数据结构--树状数组

概念: 树状数组的初衷是解决状态压缩空间里的累积频率,现在多用于求前缀和与后缀和(方便计算),它可以以 O(logN)的时间得到任意前缀和,并同时支持在 O(logN)时间内支持动态单点值的修改。空间复杂度 O(N)。 树状数组的引用&#…

如何根据自己的数据集微调一个 Transformer 模型

将通过 NLP 中最常见的文本分类任务来学习如何在自己的数据集上利用迁移学习(transfer learning)微调一个预训练的 Transformer 模型—— DistilBERT。DistilBERT 是 BERT 的一个衍生版本,它的优点在它的性能与 BERT 相当,但是体积…

Unity3d C#实现场景编辑/运行模式下3D模型XYZ轴混合一键排序功能(含源码工程)

前言 在部分场景搭建中需要整齐摆放一些物品(如仓库中的货堆、货架等),因为有交互的操作在单个模型上,每次总是手动拖动模型操作起来也是繁琐和劳累。 在这背景下,我编写了一个在运行或者编辑状态下都可以进行一键排序…

【嘉立创EDA-PCB设计指南】3.网络表概念解读+板框绘制

前言:本文对网络表概念解读板框绘制(确定PCB板子轮廓) 网络表概念解读 在本专栏的上一篇文章【嘉立创EDA-PCB设计指南】2,将设计的原理图转为了PCB,在PCB界面下出现了所有的封装,以及所有的飞线属性&…

从0开始python学习-48.pytest框架之断言

目录 1. 响应进行断言 1.1 在yaml用例中写入断言内容 1.2 封装断言方法 1.3 在执行流程中加入断言判断内容 2. 数据库数据断言 2.1 在yaml用例中写入断言内容 2.2 连接数据库并封装执行sql的方法 2.3 封装后校验方法是否可执行 2.4 使用之前封装的断言方法&#xff0c…

austin-admin 消息推送平台前端项目依赖低代码平台Amis 怎么使用

austin-admin 消息推送平台前端项目🔥依赖低代码平台Amis 怎么使用 收到一个通知,要将部署一个开源的消息系统 :austin的前端开源:https://gitee.com/zhongfucheng/austin-admin 本地运行 1、使用npm或者yarn这些咯 yarn yarn start2、使用…

【LabVIEW FPGA入门】FPGA中的数学运算

数值控件选板上的大部分数学函数都支持整数或定点数据类型,但是需要请注意,避免使用乘法、除法、倒数、平方根等函数,此类函数比较占用FPGA资源,且如果使用的是定点数据或单精度浮点数据仅适用于FPGA终端。 1.整数运算 支持的数…

pyechart基础

pyecharts - A Python Echarts Plotting Library built with love. 全局配置项 初识全局配置组件 Note: 配置项章节应该配合图表类型章节中的 example 阅读。 全局配置项可通过 set_global_opts 方法设置 InitOpts:初始化配置项 class pyecharts.options.InitO…

Java顺序表(2)

🐵本篇文章将对ArrayList类进行讲解 一、ArrayList类介绍 上篇文章我们对顺序表的增删查改等方法进行了模拟实现,实际上Java提供了ArrayList类,而在这个类中就包含了顺序表的一系列方法,这样在用顺序表解决问题时就不用每次都去实…

【C++干货铺】红黑树 (Red Black Tree)

个人主页点击直达:小白不是程序媛 C系列专栏:C干货铺 代码仓库:Gitee 目录 前言 红黑树的概念 红黑树的性质 红黑树结点的定义 红黑树的插入操作 插入新的结点 检查规则进行改色 情况一 情况二 情况三 插入完整代码 红黑树的验…

SpringMVC参数接收见解4

# 4.参数接收Springmvc中,接收页面提交的数据是通过方法形参来接收: 处理器适配器调用springmvc使用反射将前端提交的参数传递给controller方法的形参 springmvc接收的参数都是String类型,所以spirngmvc提供了很多converter(转换…

【数据结构】归并排序的两种实现方式与计数排序

前言:在前面我们讲了各种常见的排序,今天我们就来对排序部分收个尾,再来对归并排序通过递归和非递归的方法进行实现,与对计数排序进行简单的学习。 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏…

Android Matrix绘制PaintDrawable设置BitmapShader,手指触点为圆心scale放大原图,Kotlin

Android Matrix绘制PaintDrawable设置BitmapShader,手指触点为圆心scale放大原图,Kotlin 在 Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图的圆切图,Kotlin(4)-CSDN博客 的…

2001-2022年上市公司企业财务绩效、公司价值、并购绩效数据(ROA、ROE、TOBINQ变化)

2001-2022年上市公司企业财务绩效、公司价值、并购绩效数据(ROA、ROE、TOBINQ变化) 1、时间:2001-2022年 2、指标:证券代码、统计截止日期、证券简称、行业代码、行业名称、年份、、总资产净利润率B、净资产收益率(ROE)B、托宾Q…

【方法】如何压缩zip格式文件?

zip是一种常见的压缩文件格式,能够高效打包文件便于存储和传输,那zip格式的压缩文件要如何压缩呢? 压缩zip文件需要用到解压缩软件,比如常见的WinRAR、7-Zip软件都可以压缩zip格式。下面一起来看看具体如何操作。 一、使用WinRAR…

日期处理第一篇--优雅好用的Java日期工具类Joda-Time

日常开发中,处理时间和日期是很常见的需求。基础的java内置工具类只有Date和Calendar,但是这些工具类的api使用并不是很方便和强大,于是就诞生了Joda-Time这个专门处理日期时间的库。 简介 Joda-Time提供了Java日期处理的优雅的替代品&…