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

E2 Mysql的基本操作和用户权限

一、实验目的:

要求掌握Mysql平台的基本操作和基本的权限管理。

二、实验要求:

1、基本硬件配置:英特尔Pentium III 以上,大于4G内存;

2、软件要求:Mysql;

3、时间:4小时;

4、撰写实验报告并按时提交。

三、实验内容:

Group 1: 安装Mysql for window or for linux

(1)从Mysql网站下载软件;

http://downloads.mysql.com/archives/installer/(mysql-installer-community-8.0.12.0.msi)

(2)把它安装在你的电脑上;

(3)设置windows环境路径;

(4)启动Mysql服务器。

Group 2:登录Mysql服务器通过以下方法:

(1) Navicat15

(2) CDM:Mysql –u username -p

(3)带IP地址的用户创建,然后链接Mysql

解决方案:

mysql8 :客户端连接caching-sha2-password问题_mysql8 caching_sha2_password-CSDN博客

Group 3: mysql下创建一个新用户的方法:

create user语句:

例子:创建用户create user 'user1'@'localhost' identified by 'user1';

用户名@IP地址用户只能该IP下才能访问

用户名@192.168.1.%用户只能在该IP段下才能访问(通配符%表示任意)

用户名@ %用户可以在任意IP下访问(默认IP地址为%)

修改密码: set password for '用户名'@'IP地址' = '新密码';

例如:set password for 'user1'@'localhost' ='123';

自己修改密码:set password = '123';  

查看用户表:

use mysql;

select host,user,authentication_string from user;(主机名、用户名、密码)

 

Group 4:grant和revoke

  1. 查看某个mysql用户的权限:show grants for '用户'@'IP地址

2、给某个用户授权:grant  权限 on 数据库.表 to   '用户'@'IP地址';

   选择至少6种权限进行操作和验证。

验证

 # 表示有所有的权限,除了grant这个命令,这个命令是root才有的。

grant all privileges  on db1.t1 to "mjj"@'%';

//all privileges  除grant外的所有权限,

            select          仅查权限

            select,insert   查和插入权限

            ...

            usage                   无访问权限

            alter                   使用alter table

            alter routine           使用alter procedure和drop procedure

            create                  使用create table

            create routine          使用create procedure

            create temporary tables   使用create temporary tables

            create user            

// 使用create user、drop user、rename user和revoke  all privileges

            create view             使用create view

            delete                  使用delete

            drop                    使用drop table

            execute                 使用call和存储过程

            file                    使用select into outfile 和 load data infile

            grant option            使用grant 和 revoke

            index                   使用index

            insert                  使用insert

            lock tables             使用lock table

            process                 使用show full processlist

            select                  使用select

            show databases          使用show databases

            show view               使用show view

            update                  使用update

            reload                  使用flush

            shutdown                使用mysqladmin shutdown(关闭MySQL)

            super                   使用change master、kill、logs、purge、master和set global。还允许mysqladmin 调试登陆

            replication client      服务器位置的访问

            replication slave       由复制从属使用


          3、从某个用户收回权力并验证revoke:revoke priv_type on database.table from user

查看权限:

  show grants for 'user1'@'localhost';

或 select host,user,select_priv,delete_priv,grant_priv from user;

(show create table user;查看表详细结构)

Group 5Role角色模拟演示

1、创建角色

CREATE ROLE 'app_developer', 'app_read', 'app_write';   --创建了3个角色

2、赋予角色权限

GRANT ALL ON app_db.* TO 'app_developer';   -- 给app_db数据库中所有表的所有权限

GRANT SELECT ON app_db.* TO 'app_read';     -- app_db数据库中所有表的查询权限

GRANT INSERT, UPDATE, DELETE ON app_db.* TO 'app_write';  --app_db数据库中所有表的修改权限

3、赋予账户角色

创建4个用户

CREATE USER 'dev1'@'localhost' IDENTIFIED BY 'dev1pass';

CREATE USER 'read_user1'@'localhost' IDENTIFIED BY 'read_user1pass';

CREATE USER 'read_user2'@'localhost' IDENTIFIED BY 'read_user2pass';

CREATE USER 'rw_user1'@'localhost' IDENTIFIED BY 'rw_user1pass';

赋予角色

GRANT 'app_developer' TO 'dev1'@'localhost';

GRANT 'app_read' TO 'read_user1'@'localhost', 'read_user2'@'localhost';

GRANT 'app_read', 'app_write' TO 'rw_user1'@'localhost';

4、角色激活

查看当前会话已激活的角色

SELECT CURRENT_ROLE();

设置默认激活的角色

-- 为下面4个用户默认激活所有已拥有的角色

SET DEFAULT ROLE ALL TO

  'dev1'@'localhost',

  'read_user1'@'localhost',

  'read_user2'@'localhost',

  'rw_user1'@'localhost';

运行时激活:set role app_developer;

Group 6: 综合实验

假设有一个员工管理系统的数据库exam,包括以下表格: student, grade,course三个,分别表示学生表、成绩表和课程表,表格结构风别如下:

Student(stuid, stuname, birthday, Classid); course(cid, cname, credit); grade(stuid,cid,score);

学生(学号,学生姓名,生日,班级号)

课程(课程号,课程名,学分)

成绩(学号,课程号,分数)

1、root设计ManagerTeacher用户

ManagerTeacher用户:该用户负责创建以上数据库及三个表,拥有所有的权限,并负责给所有任课老师、班主任和学生分别创建一个用户(每种角色创建2个用户),并根据要求进行角色构建与授权、或者基于用户的授权,使得他们拥有以下的访问权限(可利用角色与视图):

任课教师:拥有该老师相关课程成绩的所有操作权限(已知任课老师与课程编号的对应关系);

班主任:拥有查询他管理的班级的所有学生与成绩信息、所有课程信息;

学生:拥有对该学生自身成绩信息的查询权限;

2、验证您的权限设置。

您可能根据角色的合理需求执行以下操作:创建角色、授予角色特权、create用户、授予用户角色、操作数据、验证设置。要求写下整个过程的所有合理步骤。

班主任

老师

学生

相关文章:

E2 Mysql的基本操作和用户权限

一、实验目的: 要求掌握Mysql平台的基本操作和基本的权限管理。 二、实验要求: 1、基本硬件配置:英特尔Pentium III 以上,大于4G内存; 2、软件要求:Mysql; 3、时间:4小时; 4、撰写实验报告并按时提交。 三、实验内容: Group 1: 安装Mys…...

TCP 的三次握手和四次挥手

Java 面试题 TCP 三次握手 第一次握手:客户端向服务端发送SYN包。报文中标志位SYN1,序列号seqx(x为随机整数)。此时客户端进入了 SYN_SEND 同步已发送状态。 第二次握手:服务端回复客户端SYNACK包。报文中标志位SYN1&…...

mybatisplus做SQL拦截添加自定义排序

前言 工作中写的一段代码,备个份,以后兴许能直接用 功能描述:如果前端传入了排序规则,则优先按传入的字段进行排序,SQL原有的排序规则追加到末尾 注:我们项目里的分页查询,是基于XML的SQL执行的…...

代码随想录算法训练营第29天(回溯算法05 | * 491.递增子序列 * 46.全排列 * 47.全排列 II

回溯算法part05 491.递增子序列解题思路与 90.子集II 不同的点回溯三部曲 46.全排列解题思路遇到的难点思考 47.全排列 II解题思路注意点拓展需要加深理解的点(需复习 小总结 491.递增子序列 本题和大家刚做过的90.子集II非常像,但又很不一样&#xff0c…...

mac docker desktop被禁用了,如何使用虚拟机lima运行docker

安装lima brew install lima创建配置 echo "\\ndynamic:\n big-sur:\n image: docker://docker:git\n linux:\n image: docker.io/limasoftware/ubuntu:20.04 \\n" > ~/.lima/default.yaml启动名叫default的虚拟机 limactl start default测试 limactl …...

sublime text 开启vim模式

sublime text 开启vim模式 打开配置文件 mac下点击菜单栏 Sublime Text -> Settings... -> Settings 修改配置文件并保存 添加配置 // 开启vim模式 "ignored_packages": [// "Vintage", ], // 以命令模式打开文件 "vintage_start_in_comman…...

JS词法结构

编程语言的词法结构是一套基础性规则,用来描述如何使用这门语言来编写程序。作为语法的基础,它规定了诸如变量名是什么样的、怎么写注释,以及程序语句之间如何分隔等规则。 2.1程序的文本 JS区分大小写 JS忽略程序记号(token&am…...

程序媛的mac修炼手册-- 如何用Python节省WPS会员费

上篇分享了如何用微博爬虫,咱举例爬了女明星江疏影的微博数据。今天就用这些数据,给大家安利一下怎么用Python实现WPS中部分Excel付费功能。 MacOS系统自带的工具,绝大多数都非常顶,除Numbers外。当然,page比起word来&…...

ASP.NET Core NE8实现HTTP Upgrade和HTTP CONNECT代理服务器

看到一个文章[Go] 不到 100 行代码实现一个支持 CONNECT 动词的 HTTP 服务器 在NET8中如何实现 创建项目为MiniApi 编辑Program.cs文件。 var builder WebApplication.CreateSlimBuilder(args);var app builder.Build();// 将HTTP请求通过协议升级机制转为远程TCP请求&…...

apipost和curl收不到服务器响应的HTTP/1.1 404 Not Found

windows的apipost发送请求后,服务器响应了HTTP/1.1 404 Not Found,但是apipost一直显示发送中。 linux上的curl也一样。 使用wireshark抓包发现收到了响应,但是wireshark识别不了(图中是回应404后关闭了连接)&#xff…...

javascript:计算一个坐标数组的最小值点、最大值点、中心点

作者:CSDN _乐多_ 本文将介绍使用 javascript 语言计算一个坐标数组的最小值点、最大值点、中心点的代码。 文章目录 一、代码 一、代码 function calculateCenterPoint(points) {if (points.length 0) {return null;}let sumX 0;let sumY 0;let sumZ 0;for …...

使用远程工具连接Linux系统——使用Root用户登录

1、启动虚拟机,输入以下命令 进入root用户 sudo su或 su root修改ssh配置文件 vim /etc/ssh/sshd_config找到PermitRootLogin 并用#注释掉当前行 # PermitRootLogin prohibit-password添加: PermitRootLogin yes键入esc输入:wq保存退出 2、重启服…...

JuiceSSH结合内网穿透实现移动端设备公网远程访问Linux虚拟机

文章目录 1. Linux安装cpolar2. 创建公网SSH连接地址3. JuiceSSH公网远程连接4. 固定连接SSH公网地址5. SSH固定地址连接测试 处于内网的虚拟机如何被外网访问呢?如何手机就能访问虚拟机呢? cpolarJuiceSSH 实现手机端远程连接Linux虚拟机(内网穿透,手机端连接Linux虚拟机) …...

06-枚举和模式匹配

上一篇:05-使用结构体构建相关数据 在本章中,我们将介绍枚举。枚举允许你通过枚举其可能的变体来定义一种类型。首先,我们将定义并使用一个枚举,以展示枚举如何与数据一起编码意义。接下来,我们将探索一个特别有用的枚…...

【C/C++】C/C++编程——C++ 开发环境搭建

C的开发环境种类繁多,以下是一些常见的C 集成开发环境: AppCode :构建与JetBrains’ IntelliJ IDEA 平台上的用于Objective-C,C,C,Java和Java开发的集成开发环境CLion:来自JetBrains的跨平台的C/C的集成开…...

Go 接口

接口概览 接口大概理解 接口类型是队其他类型行为的概括与抽象 接口类型中,包含函数声明,但没有数据变量接口的作用通过使用接口,可以写出更加灵活和通用的函数,这些函数不用绑定在一个特定的类型实现上Go 接口特征 很多面向对象…...

用 AI 将自拍照 P 进不同艺术作品,谷歌发布「艺术自拍 2」

1 月 24 日消息,谷歌旗下「艺术与文化」应用今日宣布,2018 年推出的「艺术自拍」功能在时隔近六年后,借助生成式 AI 的力量回归。官方表示,「艺术自拍 2」将再次使用户与艺术面对面,重新探访世界各地的艺术、历史和文化…...

SpringSecurity+OAuth2.0 搭建认证中心和资源服务中心

目录 1. OAuth2.0 简介 2. 代码搭建 2.1 认证中心(8080端口) 2.2 资源服务中心(8081端口) 3. 测试结果 1. OAuth2.0 简介 OAuth 2.0(开放授权 2.0)是一个开放标准,用于授权第三方应用程序…...

c# 策略模式

在 C# 中,策略模式是一种行为型设计模式,它定义了一系列算法,并将每个算法封装到具有公共接口的独立类中,使得它们可以互相替换。这样可以使得算法的选择独立于算法的使用者,从而提高了灵活性和可维护性。 以下是策略…...

消息队列RabbitMQ.03.死信交换机的讲解与使用

目录 一、死信队列(延迟队列) 概念讲解 二、确认消息(局部方法处理消息) 三、代码实战 1.编写生产者代码,配置消息、直连交换机、路由键 1.1代码解析: 2.配置消费者接受类接受直连交换机的路由键 2.1. String msg&#xff…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

PHP和Node.js哪个更爽?

先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

GitHub 趋势日报 (2025年06月08日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...

云原生安全实战:API网关Kong的鉴权与限流详解

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...

AD学习(3)

1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分: (1)PCB焊盘:表层的铜 ,top层的铜 (2)管脚序号:用来关联原理图中的管脚的序号,原理图的序号需要和PCB封装一一…...