数据库实验:SQL的数据控制

目录

  • 数据控制
  • 实验目的
  • 实验内容
  • 实验要求
  • 实验过程
    • 实验内容提纲
    • 实验过程

数据控制

数据控制SQL语句(DCL)是一类可对用户数据访问权进行控制的操作语句,可以控制特定用户或角色对数据表、视图、存储过程、触发器等数据对象的访问权限。主要有GRANT、REVOKE、DENY语句操作来实现。

这个文档中有SQL Server的一些相关操作:
https://docs.microsoft.com/zh-cn/sql/t-sql/tutorial-writing-transact-sql-statements?view=sql-server-ver15

实验目的

(1)理解MySql数据库的安全性相关的概念
(2)掌握MySql的验证模式、登录管理、用户管理、角色管理、权限管理等操作

实验内容

(1)MySql的安全认证模式
(2)管理数据库用户
(3)管理数据库角色
(4)权限管理

实验要求

(1)掌握MySql的安全认证模式的概念及设置方法
(2)掌握MySql登录账号、数据库用户、数据库角色的添加、修改、删除等操作,以及对数据库用户、角色进行权限授予和回收等操作
(3)理解架构(Schema)、用户(User)、角色(Role)和登录(Login)等基本概念及其关系

实验过程

实验内容提纲

利用S_T.sql建立示例数据库S_T

添加SQL Server登录帐号:4个
tempuser, temp1, temp2, temp3;
密码分别为:tempqq, qq1, qq2, qq3
为S_T数据库添加(数据库)用户:4个
tempuser, temp1, temp2, temp3
(与SQL Server登录帐号一一对应(映射))
为S_T数据库添加自定义(数据库)角色: 1个,即db_operator
将数据库用户temp2和temp3添加到db_operator角色中,成为其角色成员
将在S_T数据库中创建表、创建视图的权限授予数据库用户tempuser
将SELECT,UPDATE(Sname,Sage,Ssex,Sdept) ON Student的权限授予数据库用户temp1
将SELECT ON Student,Course,SC的权限授予数据库角色db_operator
检验结果:用创建的登录账号替换sa系统账号,来尝试与数据库服务器建立连接,对数据表中的数据进行存取操作,并记录与分析可能会遇到的问题。尝试通过授予更高的权限来解决问题
从数据库用户temp1回收UPDATE(Sname,Ssex,Sdept) ON Student的权限,从数据库角色db_operator回收SELECT ON SC的权限,然后检验结果的正确性

实验过程

创建一个MySQL用户testuser,密码为qq,数据库为S_T,默认语言为英语:

CREATE USER ‘testuser’@‘localhost’ IDENTIFIED BY ‘qq’;
GRANT ALL PRIVILEGES ON S_T.* TO ‘testuser’@‘localhost’;
SET GLOBAL init_connect=SET NAMES utf8’;

创建一个MySQL用户test1,密码为qq1,数据库为S_T,默认语言为英语:

CREATE USER ‘test1’@‘localhost’ IDENTIFIED BY ‘qq1’;
GRANT ALL PRIVILEGES ON S_T.* TO ‘test1’@‘localhost’;
SET GLOBAL init_connect=SET NAMES utf8’;

创建一个MySQL用户test2,密码为qq2,数据库为S_T_1,默认语言为英语:

CREATE USER ‘test2’@‘localhost’ IDENTIFIED BY ‘qq2’;
GRANT ALL PRIVILEGES ON S_T_1.* TO ‘test2’@‘localhost’;
SET GLOBAL init_connect=SET NAMES utf8’;

创建一个MySQL用户test3,密码为qq3,数据库为S_T_1,默认语言为英语:

CREATE USER ‘test3’@‘localhost’ IDENTIFIED BY ‘qq3’;
GRANT ALL PRIVILEGES ON S_T_1.* TO ‘test3’@‘localhost’;
SET GLOBAL init_connect=SET NAMES utf8’;

修改用户testuser的密码为testqq:

ALTER USER ‘testuser’@‘localhost’ IDENTIFIED BY ‘testqq’;

删除用户testuser:

DROP USER ‘testuser’@‘localhost’;

使用数据库S_T:

USE S_T;

授予用户testuser、test1、test2、test3数据库访问:

GRANT ALL PRIVILEGES ON S_T.* TO ‘testuser’@‘localhost’;
GRANT ALL PRIVILEGES ON S_T.* TO ‘test1’@‘localhost’;
GRANT ALL PRIVILEGES ON S_T.* TO ‘test2’@‘localhost’;
GRANT ALL PRIVILEGES ON S_T.* TO ‘test3’@‘localhost’;

收回用户test3的数据库访问:

REVOKE ALL PRIVILEGES ON S_T.* FROM ‘test3’@‘localhost’;

使用数据库S_T:

USE S_T;

创建一个角色db_operator:

CREATE ROLE ‘db_operator’;

添加用户test2、test3为角色db_operator的成员:

GRANT ‘db_operator’ TO ‘test2’@‘localhost’, ‘test3’@‘localhost’;

删除角色db_operator:

DROP ROLE ‘db_operator’;

系统管理员授予用户testuser如下权限:CREATE TABLE、CREATE VIEW:

GRANT CREATE TABLE, CREATE VIEW TO ‘testuser’@‘localhost’;

授予用户test1对Student表的SELECT、UPDATE(Sname,Sage,Ssex,Sdept)权限:

GRANT SELECT, UPDATE(Sname,Sage,Ssex,Sdept) ON Student TO ‘test1’@‘localhost’;

授予角色db_operator对Student、Course、SC表的SELECT权限:

GRANT SELECT ON Student, Course, SC TO ‘db_operator’;

收回用户testuser的CREATE TABLE、CREATE VIEW权限:

REVOKE CREATE TABLE, CREATE VIEW FROM ‘testuser’@‘localhost’;

收回用户test1对Student表的SELECT、UPDATE(Sname,Ssex,Sdept)权限:

REVOKE SELECT, UPDATE(Sname,Ssex,Sdept) ON Student FROM ‘test1’@‘localhost’;

收回角色db_operator对Student表的SELECT权限:

REVOKE SELECT ON Student FROM ‘db_operator’;

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

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

相关文章

微服务之Nacos注册管理

文章目录 一、Nacos安装步骤1.安装地址2.安装版本3.目录说明4.端口配置5.启动 二、Nacos服务注册1.Nacos依赖2.客户端修改配置文件3.启动效果图4.总结 三、Nacos服务集群属性1.服务跨集群调用问题2.服务集群属性3.总结 四、Nacos根据集群负载均衡1.修改配置文件2.设置集群服务类…

一题都看不懂,大厂的面试是真的变态......

最近我的一个读者朋友去了字节面试,来给我发信息吐槽,说字节的面试太困难了,像他这种三年经验的测试员,在技术面,居然一题都答不上来,这要多高的水平才能有资格去面试字节的测试岗位。 确实,字…

浅析应急疏散照明设计在高层建筑中的应用

【摘要】作为工程设计人员,对高层建筑的应急照明设计应有足够的认识和重视,以保证在出现失火事件时,可以有效地引导建筑内的人员安全逃离、正确疏散,这是建筑设计的*大价值所在。在设计应急照明时,应根据当地的情况选择…

【操作系统】2009年408真题第 46 题

文章目录 题目描述1)依次访问上述三个虚地址,各需多少时间?给出计算过程2)基于上述访问序列,虚地址1565H的物理地址是多少?请说明理由 原题 & 官方题解 题目描述 46(8分)请求分…

集简云API集成:轻松连接CRM和广告推广系统,助力海外市场用户运营

连接海外市场数据采集 随着全球化的深入发展,集简云的用户中有越来越多的企业和个人开始将目光聚焦在海外市场,如何获取准确、及时的海外市场数据显得尤为重要。而数据采集则成为了一种高效、快捷、精准地获取海外数据的方法。在这个背景下,…

LiveMeida视频接入网关

一、产品简介 视频接入网关主要部署在视频存储节点或视频汇聚节点,面向不同用户,主要用于对接不同厂家、不同型号的摄像机设备,获取摄像机视频后,以统一标准的视频格式和传输协议,将视频推送至上层联网/应用平台。可…

CS5523设计资料|替代LT9711方案|MIPI转LVDS方案|CS5523规格书

ASL CS5523是MIPI DSI输入、DP/e DP输出转换芯片。MIPI DSI最多支持4个通道,每个通道的最大运行速度为1.5Gps。对于DP 1.2输出,它由4个数据通道组成,支持1.62Gbps和2.7Gbps的链路速率。支持1.62Gbps和2.7Gbps的链路速率。它支持2560的最高分辨…

前端 | (十四)canvas基本用法 | 尚硅谷前端HTML5教程(html5入门经典)

文章目录 📚canvas基本用法🐇什么是canvas(画布)🐇替换内容🐇canvas标签的两个属性🐇渲染上下文 📚绘制矩形🐇绘制矩形🐇strokeRect时,边框像素渲染问题🐇添加…

Go 方法集合与选择receiver类型

Go 方法集合与选择receiver类型 文章目录 Go 方法集合与选择receiver类型一、receiver 参数类型对 Go 方法的影响二、选择 receiver 参数类型原则2.1 选择 receiver 参数类型的第一个原则2.2 选择 receiver 参数类型的第二个原则 三、方法集合(Method Set&#xff0…

公开IP属地信息如何保护用户的隐私?

公开IP属地信息通常涉及与用户或组织的隐私有关,因此在公开此类信息时需要非常小心,以避免侵犯他人的隐私权。以下是触碰底线的几种情况以及如何保护网络安全和用户隐私: 个人隐私保护: 公开IP属地信息可能泄露用户的物理位置&…

最新版一媒体7.3、星媒体、皮皮剪辑,视频MD ,安卓手机剪辑去重神器+搬运脚本+去视频重软件工具

最新版一媒体app安卓版介绍: 这是一款功能强大的视频搬运工具,内置海量视频编辑工具,支持一键智能化处理、混剪、搬运、还能快速解析和去水印等等,超多实用功能等着您来体验! 老牌手机剪辑去重神器,用过的…

uniapp 编译到模拟器(mumu)

一开始我是用逍遥模拟器,但这个玩意突然不好使了,一直加载卡在这页面 1、下载 官网下载:mumu模拟器12 2、打开mumu多开器,在右上角adb查看端口号 3、打开mumu模拟器 4、打开HBuiderX 工具—设置—运行配置 5、配置电脑的系统…

各种各类好用热门API推荐

各种各类的好用API推荐,含免费次数~ 天气预报查询:查询全国以及全球多个城市的天气,包含15天天气预报查询。天气预警:可以获取指定城市当前生效中的各类天气预警,如寒潮蓝色预警信号,或一次性拉取全国所有…

了解web3,什么是web3

Web3是指下一代互联网,它基于区块链技术,将各种在线活动更加安全、透明和去中心化。Web3是一个广义的概念,它包括了很多方面,如数字货币、去中心化应用、智能合约等等。听不懂且大多数人听到这个东西,直觉感觉就像骗子…

centos 搭建 zookeeper 高可用集群

zookeeper-ha 主机名IP地址spark01192.168.171.101spark02192.168.171.102spark03192.168.171.103 1. 升级内核和软件 yum -y update2. 安装常用软件 yum -y install gcc gcc-c autoconf automake cmake make \zlib zlib-devel openssl openssl-devel pcre-devel \rsync op…

Python新手必读:容器类型使用的实用小贴士

更多资料获取 📚 个人网站:涛哥聊Python Python提供了多种容器类型,如列表(List)、元组(Tuple)、集合(Set)、字典(Dictionary)等,用于…

linux查看文件夹使用情况以及查看文件大小

查看文件夹的使用情况&#xff0c;包含已用和可用空间大小 df -h 文件夹路径然后再查看里面某一个文件夹占用大小 du -sh /data1、ls ls 命令是 Linux 中最常用的文件和目录列表命令之一。它可以显示文件的各种属性&#xff0c;包括文件大小。 ls -l <文件名>上述命令…

mybatis在springboot当中的使用

1.当使用Mybatis实现数据访问时&#xff0c;主要&#xff1a; - 编写数据访问的抽象方法 - 配置抽象方法对应的SQL语句 关于抽象方法&#xff1a; - 必须定义在某个接口中&#xff0c;这样的接口通常使用Mapper作为名称的后缀&#xff0c;例如AdminMapper - Mybatis框架底…

AI:57-基于机器学习的番茄叶部病害图像识别

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…

基于Pytorch框架的LSTM算法(一)——单维度单步滚动预测(2)

#项目说明&#xff1a; 说明&#xff1a;1time_steps滚动预测代码 y_norm scaler.fit_transform(y.reshape(-1, 1)) y_norm torch.FloatTensor(y_norm).view(-1)# 重新预测 window_size 12 future 12 L len(y)首先对模型进行训练&#xff1b; 然后选择所有数据的后wind…