【MySQL】从视图到用户和权限管理

【MySQL】从视图到用户和权限管理
在这里插入图片描述

我的个人主页我的专栏:人工智能领域、java-数据结构、Javase、C语言,MySQL,希望能帮助到大家!!!点赞👍收藏❤

在这里插入图片描述


在这里插入图片描述


一:视图的定义

视图是⼀个虚拟的表,它是基于⼀个或多个基本表或其他视图的查询结果集。视图本⾝不存储数据,⽽是通过执⾏查询来动态⽣成数据。⽤⼾可以像操作普通表⼀样使⽤视图进⾏查询、更新和管理。视图本⾝并不占⽤物理存储空间,它仅仅是⼀个查询的逻辑表⽰,物理上它依赖于基础表中的数据。

那么该怎么创建视图呢?跟创建表时差不多

CREATEVIEW view_name [(column_list)]AS select_statement 

二:创建好了那么该如何使用我们的视图以及视图的一些操作

例如:查询用户的所有信息和考试成绩
select s.id, s.name, s.sno, s.age, s.gender, s.enroll_date, c.id, c.`name`, co.id, co.`name`, sc.id, sc.score from student s, class c, course co, score sc where s.class_id = c.id and sc.student_id = s.id and sc.course_id = co.id orderby s.id;
在这里插入图片描述
创建视图,在select中使⽤别名
createview v_student_socre asselect s.id, s.name, s.sno, s.age, s.gender, s.enroll_date, c.id as class_id, c.`name`as class_name, co.id as course_id, co.`name`as course_name, sc.id as score_id, sc.score from student s, class c, course co, score sc where s.class_id = c.id and sc.student_id = s.id and sc.course_id = co.id orderby s.id;
创建视图,指定结果集中的列名
createview v_student_socre_v1 (id, name, sno, age, gender, enroll_date, class_id, class_name, course_id, course_name, score_id, score)asselect s.id, s.name, s.sno, s.age, s.gender, s.enroll_date, c.id, c.`name`, co.id, co.`name`, sc.id, sc.score from student s, class c, course co, score sc where s.class_id = c.id and sc.student_id = s.id and sc.course_id = co.id;
最后查询视图
select*from v_student_socre;
在这里插入图片描述
select*from v_student_socre_v1;
在这里插入图片描述


但是要注意的是通过真实表修改数据,会影响视图

当我们修改唐三藏的JAVA成绩为99分
在这里插入图片描述

我们再次查看视图时,发现唐三藏这条记录已被修改

同样的是通过视图修改数据也会影响基表

当我们修改唐三藏的计算机⽹络成绩为99分

update v_student_socre set score =99where score_id =3;

可以发现更新失败,因为创建视图时使⽤了order by 语句

在这里插入图片描述


小编整理了视图修改会受到影响的点

  • 创建视图时使⽤聚合函数的视图
  • 创建视图时使⽤ DISTINCT
  • 创建视图时使⽤ GROUP BY 以及 HAVING ⼦句
  • 创建视图时使⽤ UNION 或 UNION ALL
  • 查询列表中使⽤⼦查询
  • 在FROM⼦句中引⽤不可更新视图

你要删除视图的话可以使用

dropview view_name;

相信很多人很期待那么视图有哪些优点呢?我将一一列举
视图的优点

  1. 简单性:视图可以将复杂的查询封装成⼀个简单的查询。例如,针对⼀个复杂的多表连接查询,可
    以创建⼀个视图,⽤⼾只需查询视图⽽⽆需了解底层的复杂逻辑。
  2. 安全性:通过视图,可以隐藏表中的敏感数据。例如,⼀个系统的⽤⼾表中,可以创建⼀个不包含
    密码列视图,普通⽤⼾只能访问这个视图,⽽不能访问原始表。
  3. 逻辑数据独⽴性:视图提供了⼀种逻辑数据独⽴性,即使底层表结构发⽣变化,只需修改视图定
    义,⽽⽆需修改依赖视图的应⽤程序。使⽤到应⽤程序与数据库的解耦
  4. 重命名列:视图允许⽤⼾重命名列名,以增强数据可读性。

三:用户

数据库服务安装成功后默认有⼀个root⽤⼾,可以新建和操纵数据库服务中管理的所有数据库。在真实的使⽤过程中,通常每个应⽤对应着⼀个数据库,我们只希望某个⽤⼾只能操纵和管理当前应⽤对应的那个数据库,⽽不能操纵和管理其他应⽤的数据库,这时就可以添加⼀个⽤⼾并指定⽤⼾的权限

在这里插入图片描述


以这张图片为例
root 可以访问和操纵所有的数据库:DB1, DB2, DB3, DB4
普通⽤⼾1 只能访问和操纵数据库DB1
普通⽤⼾2 只能访问和操纵数据库DB3
只读⽤⼾1 只能访问数据库DB3
只读⽤⼾2 只能访问数据库DB4

host: 允许登录的主机,相当于⽩名单,如果是localhost,表⽰只能从本机登陆
user: ⽤⼾名
*_priv:⽤⼾拥有的权限
authentication_string: 加密后的⽤⼾密码

接下来开始创建我们的用户

CREATEUSER[IFNOTEXISTS]'user_name'@'host_name' IDENTIFIED BY'auth_string';

user_name: ⽤⼾名,⽤单引号包裹,区分⼤⼩写
host_name: 主机或IP(段),⽤单引号包裹
auth_string: 真实密码,有些密码策略不允许使⽤简单密码


这里需要的注意的是

如果不指定host_name相当于’user_name’@‘%’,%表⽰所有主机都可以连接到数据库,强烈建议不要这样设置,因为会导致严重的安全问题
user_name和host_name分别⽤单引号包裹,如果写成 ‘user_name @host_name’,相当
‘user_name@host_name’@'%

host_name可以通过⼦⽹掩码设置主机范围

  • 198.0.0.0/255.0.0.0 : A段⽹络中的任意⼀台主机
  • 198.51.0.0/255.255.0.0: 198.51 B段⽹络中的任意⼀台主机
  • 198.51.100.0/255.255.255.0: 198.51.100 C段⽹络中的任意⼀台主机
  • 198.51.100.1 :只包含特定IP地址的主机
从MySQL 8.0.23开始,指定为IPv4地址的主机值可以使⽤CIDR表⽰法写⼊,例如198.51.100.44/24
• 允许在IP地址中使⽤%通配符,⽐如,主机值’%'匹配任何主机名, 198.51.100.% 匹配198.51.100C段⽹络中的任何主机。MySQL 8.0.35中已弃⽤,以后可能会删除

四:权限管理

内置的一些权限如下图所示:

在这里插入图片描述
  1. 权限层级关系
    • 全局权限(*.*)覆盖数据库权限(db.*
    • 数据库权限覆盖表级权限(db.table
    • 表级权限覆盖列级权限(db.table(column)
    • 权限遵循"最小权限原则",应按需分配最窄范围的权限
  2. 常用权限说明
    • 数据操作:SELECT(查询)、INSERT(插入)、UPDATE(更新)、DELETE(删除)
    • 结构操作:CREATE(创建)、ALTER(修改)、DROP(删除)
    • 管理权限:GRANT OPTION(授权他人)、SUPER(超级权限)、SHUTDOWN(关闭服务)
  3. 权限生效机制
    • 新授予的权限对已有连接不生效,需重新连接
    • FLUSH PRIVILEGES 命令用于从权限表重新加载权限设置
    • 推荐通过 GRANT/REVOKE 操作权限,而非直接修改 mysql 系统库表
  4. 安全建议
    • 避免给普通用户授予 DROPALTER 等危险权限
    • 限制 GRANT OPTION 权限的使用,防止权限扩散
    • 定期审计权限,移除不再需要的权限
    • 敏感操作(如删除表)建议使用专门的管理员账号执行

通过以上操作,可以实现对 MySQL 用户权限的精细化管理,确保数据库操作的安全性和可控性。

Read more

AIGC与现代教育技术

AIGC与现代教育技术

目录 引言 一、AIGC在教育技术中的基本概念 1.1 什么是AIGC? 1.2 传统教育技术和AIGC的对比 二、实现过程:AIGC在现代教育中的实现 2.1 自动生成课件内容 2.1.1 代码示例:使用GPT生成教学文案 2.1.2 完善自动生成资料 2.1.3 多模态内容生成 2.2 数据高效分析和自动提供学习计划 2.2.1 数据学习分析 2.2.2 自动生成学习计划 三、应用场景 3.1 K12教育 示例:自动生成数学题目 3.2 高等教育

By Ne0inhk
8个降aigc工具推荐!继续教育学生高效避坑指南

8个降aigc工具推荐!继续教育学生高效避坑指南

8个降aigc工具推荐!继续教育学生高效避坑指南 AI降重工具:高效避坑,轻松应对论文挑战 在继续教育的学术道路上,论文写作是每位学生必须面对的重要环节。然而,随着人工智能技术的普及,许多学生发现自己的论文被检测出较高的AIGC率,这不仅影响了论文质量,还可能带来不必要的学术风险。因此,如何有效降低AIGC率、去除AI痕迹,并保持语义通顺,成为众多学生关注的焦点。 针对这一需求,AI降重工具应运而生,它们通过智能算法对文本进行深度分析和优化,帮助用户在不改变原意的前提下,显著降低查重率并提升论文的原创性。这些工具不仅能识别AI生成内容的痕迹,还能提供多样化的修改建议,使论文更加自然流畅。无论你是初稿撰写者还是定稿前的自查者,都能找到适合自己的解决方案。 工具名称主要功能适用场景千笔强力去除AI痕迹、保语义降重AI率过高急需降重云笔AI多模式降重初稿快速处理锐智 AI综合查重与降重定稿前自查文途AI操作简单片段修改降重鸟同义词替换小幅度修改笔杆在线写作辅助辅助润色维普官方查重最终检测万方数据库查重数据对比 千笔AI(官网直达入口) :https://www.qianb

By Ne0inhk

AI绘画新体验:圣光艺苑一键生成鎏金画框艺术品(含提示词秘籍)

AI绘画新体验:圣光艺苑一键生成鎏金画框艺术品(含提示词秘籍) 1. 为什么说“圣光艺苑”不是又一个AI绘图工具? 你试过在深夜调了27次参数,只为让AI画出一张不歪脖子、不三只手、背景不糊成浆糊的肖像吗? 你是否也曾在一堆冷冰冰的滑块、下拉菜单和英文报错中,忘了自己最初想画的是什么——不是技术,而是一幅能挂在墙上的画。 圣光艺苑不一样。 它不叫“WebUI”,不标“v2.3.5-beta”,没有“CFG Scale”“Denoising Strength”这类让人皱眉的术语。它的界面是亚麻布纹理的,主色调是梵高《星空》里的深蓝与《向日葵》中的金黄;你输入的不是“prompt”,而是“绘意”;你排除的不是“negative prompt”,而是“避讳”;你启动的不是“Generate”,而是“🏺 挥毫泼墨”。 这不是把SDXL塞进一个漂亮外壳——它是把4090显卡的算力,

By Ne0inhk