【数据库】MySQL视图 | 用户管理

news2025/1/13 10:14:28

文章目录

  • 1 :peach:视图:peach:
    • 1.1 :apple:基本使用:apple:
      • 1.1.1 :lemon:创建视图:lemon:
      • 1.1.2 :lemon:案例:lemon:
      • 1.1.3 :lemon:删除视图:lemon:
    • 1.2 :apple:视图规则和限制:apple:
  • 2 :peach:用户管理:peach:
    • 2.1 :apple:用户信息:apple:
    • 2.2 :apple:创建用户:apple:
    • 2.3 :apple:删除用户:apple:
    • 2.4 :apple:修改用户密码:apple:
    • 2.5 :apple:数据库的权限:apple:
      • 2.5.1 :lemon:给用户授权:lemon:
      • 2.5.2 :lemon:回收权限:lemon:


1 🍑视图🍑

视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图

1.1 🍎基本使用🍎

1.1.1 🍋创建视图🍋

create view 视图名 as select语句

1.1.2 🍋案例🍋

create view v_ename_dname as select ename, dname
from EMP, DEPT where EMP.deptno=DEPT.deptno;

查看v_ename_dname

select * from v_ename_dname order by dname;
+--------+------------+
| ename | dname |
+--------+------------+
| CLARK | ACCOUNTING |
| KING | ACCOUNTING |
| MILLER | ACCOUNTING |
| SMITH | RESEARCH |
| JONES | RESEARCH |
| SCOTT | RESEARCH |
| ADAMS | RESEARCH |
| FORD | RESEARCH |
| ALLEN | SALES |
| WARD | SALES |
| MARTIN | SALES |
| BLAKE | SALES |
| TURNER | SALES |
| JAMES | SALES |
+--------+------------+

修改了视图,对基表数据有影响:

select emp.ename,dept.dname,dept.deptno from emp,dept where
emp.deptno=dept.deptno order by dname;
update v_ename_dname set ename='TEST' where ename='CLARK';
select * from EMP where ename='CLARK';
select * from EMP where ename='TEST';

修改了基表,对视图有影响:

mysql> update EMP set deptno=10 where ename='JAMES'; -- 修改基表
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from v_ename_dname where ename='JAMES';
+-------+----------+
| ename | dname |
+-------+----------+
| JAMES | RESEARCH | <== 视图中的数据也发生了变化
+-------+----------+

1.1.3 🍋删除视图🍋

drop view 视图名

1.2 🍎视图规则和限制🍎

  • 与表一样,必须唯一命名(不能出现同名视图或表名);
  • 创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响;
  • 视图不能添加索引,也不能有关联的触发器或者默认值;
  • 视图可以提高安全性,必须具有足够的访问权限;
  • order by 可以用在视图中,但是如果从该视图检索数据 select 中也含有 order by ,那么该视图中的 order by 将被覆盖;
  • 视图可以和表一起使用;

2 🍑用户管理🍑

2.1 🍎用户信息🍎

MySQL中的用户,都存储在系统数据库mysqluser表中:
在这里插入图片描述字段解释:

  • host: 表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆;
  • user: 用户名;
  • authentication_string: 用户密码通过password函数加密后的;

2.2 🍎创建用户🍎

create user '用户名'@'登陆主机/ip' identified by '密码';

案例:
比如我们创建一个grm的用户,并且只允许该用户在本地登录:
在这里插入图片描述
此时再查看user表中内容:
在这里插入图片描述
所以现在我们就可以使用普通用户的身份进行登录了。

2.3 🍎删除用户🍎

语法:

drop user '用户名'@'主机名'

这里我就不删除了。

2.4 🍎修改用户密码🍎

语法:

  • 自己改自己密码:
set password=password('新的密码');
  • root用户修改指定用户的密码:
set password for '用户名'@'主机名'=password('新的密码');

2.5 🍎数据库的权限🍎

由于前面我们已经创建了普通用户grm,所以当我们使用普通用户的身份去查看当前存在哪些数据库的时候:
在这里插入图片描述
我们惊讶的发现居然只有一个数据库,之前不是创建了很多数据库的吗?其实这就是权限问题了,之前的数据库全部都是在root用户下创建的,而普通用户是没有root用户权限的,所以这也就导致了为什么在普通用户下看到的数据库要少些,那么我们应该采取怎样的措施呢?

2.5.1 🍋给用户授权🍋

语法:

grant 权限列表 on.对象名 to '用户名'@'登陆位置' [identified by '密码']

说明:
权限列表,多个权限用逗号分开:

grant select on ...
grant select, delete, create on ....
grant all [privileges] on ... -- 表示赋予该用户在该对象上的所有权限
  • *.* : 代表本系统中的所有数据库的所有对象(表,视图,存储过程等);
  • 库.* : 表示某个数据库中的所有数据对象(表,视图,存储过程等);
  • identified by可选。 如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户;

补充:MySQL数据库提供的权限列表

权限上下文
createCreate_priv数据库/表/索引
dropDrop_priv数据库/表
grant optionGrant_priv数据库/表/保存的程序
referencesReferences_priv数据库/表
alterAlter_priv
deleteDelete_priv
indexIndex_priv
insertInsert_priv
selectSelect_priv
updateUpdate_priv
create viewCreate_view_priv视图
show viewShow_view_priv视图

使用all将添加所有权限。
现在要给grm用户添加数据库db1所有表的select权限:

grant select on db1.* to 'grm'@'localhost';

此时在grm用户下就能够拥有对数据库db1所有表的select权限:
在这里插入图片描述
此刻想要在grm用户下向account表中插入数据是不被允许的,我们可以为grm用户增加向account表中插入的权限:

grant insert on db1.account to 'grm'@'localhost';

此时在grm用户下:
在这里插入图片描述
便能够插入数据啦!
当然还可以增加其他的权限,在上面列出的权限列表都可以增加。
那我们能够通过什么方式比较直观的看见grm用户的权限吗?
可以使用下面这种方式:
在这里插入图片描述
补充:当发现赋权限后,没有生效,执行指令flush privileges;

2.5.2 🍋回收权限🍋

语法:

revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置'

但是要注意一点:当该用户没有该权限时而去回收该权限会报错。
我们可以使用all回收所有权限,但是一般来说不会这么使用。

我们先向grm用户增加db1数据库中account表的所有权限,然后再去掉对account的select权限:
在这里插入图片描述
在这里插入图片描述
此时在grm用户下就不能够select account表中数据了:
在这里插入图片描述


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

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

相关文章

Sovit3D数字孪生平台 助力智慧海上风电场项目加速

我们常说地球是蓝色星球&#xff0c;那是因为海洋约占地球面积的71%。如今&#xff0c;我国正在向“双碳”目标不断奋斗&#xff0c;海上风电也作为一种潜力清洁能源&#xff0c;迸发出前所未有的活力&#xff0c;海上吹来的风成为未来清洁能源新方向。 2024年海上风电项目加速…

基于SpringBoot+Apache ECharts的前后端分离外卖项目-苍穹外卖(十八)

数据展示 1. Apache ECharts1.1 介绍1.2 入门案例 2. 营业额统计2.1 需求分析和设计2.1.1 产品原型2.1.2 接口设计 2.2 代码开发2.2.1 VO设计2.2.2 Controller层2.2.3 Service层接口2.2.4 Service层实现类2.2.5 Mapper层 2.3 功能测试 3. 用户统计3.1 需求分析和设计3.1.1 产品…

如果发现某个地方太薄了想要加厚怎么办?

Q 做完模型后&#xff0c;发现斧头柄部太薄了想要加厚怎么办&#xff1f; A 使用圆形套索区域&#xff0c;选中点 然后左视图&#xff0c;选择缩放&#xff0c;横向拉宽即可

git bash:ls查看文件颜色全部为白色的解决方法(已解决)

方法一&#xff1a; 修改~/.bashrc文件或者~/.profile文件&#xff0c;添加如下内容 alias lsls --colorauto 然后 source一下&#xff0c;让修改配置生效 source ~/.profile 然后再ls OK了

哪些网页原型设计工具易于使用?

本文介绍了七种专业易用的原型工具&#xff0c;帮助您快速制作可验证的方案原型&#xff0c;减少产品、运营和其他同事的沟通时间&#xff0c;以及设计师绘制效果图的沟通时间。我相信你可以在阅读后找到最合适的网页原型设计工具。网页界面原型设计软件有很多选择。以下是一些…

超全的数据可视化图表组件,建议收藏!

直观的图表可以让受众理解复杂的数据&#xff0c;图表也分为很多种类&#xff0c;不同的图表的适用场合不同&#xff0c;小编对【派可数据 BI】的可视化组件进行梳理&#xff0c;根据使用场景&#xff0c;将可视化组件划分了以下几类&#xff1a;指标、趋势、比较、时序、空间、…

Ansible user 模块 该模块主要是用来管理用户账号

目录 参数语法验证创建用户删除用户验证 删除用户 参数 comment  # 用户的描述信息 createhome  # 是否创建家目录 force  # 在使用stateabsent时, 行为与userdel –force一致. group  # 指定基本组 groups  # 指定附加组&#xff0c;如果指定为(groups)表示删除所有…

Vue3路由元信息

路由元信息即定义路由时的meta信息 使用路由元信息定义页面在浏览器显示的标题 定义路由 const router createRouter({history:createWebHistory(import.meta.env.BASE_URL),routes:[{path:"/",component:()>import("/components/Login.vue"),meta:{…

C# OpenCvSharp DNN Low Light image Enhancement

目录 介绍 效果 模型信息 项目 代码 下载 C# OpenCvSharp DNN Low Light image Enhancement 介绍 github地址&#xff1a;GitHub - zhenqifu/PairLIE 效果 模型信息 Model Properties ------------------------- ---------------------------------------------------…

stream流-> 判定 + 过滤 + 收集

List<HotArticleVo> hotArticleVos hotArticleVoList .stream() .filter(x -> x.getChannelId().equals(wmChannel.getId())).collect(Collectors.toList()); 使用Java 8中的Stream API对一个名为hotArticleVoList的列表进行过滤操作&#xff0c;筛选出符合指定条件…

可视化大屏C位的中国地图,都有哪些样式?

可视化设计用上了中国地图&#xff0c;那么中国地图必定占据了C位&#xff0c;这可是大屏中最显眼的位置&#xff0c;最抓眼球的地方&#xff0c;咱们总不能随随便便截图放上去吧。 本文就带若干张地图样式&#xff0c;开拓一下大家的思路。

POI WorkbookFactory.create(inputStream) IndexOutOfBoundsException

近期&#xff0c;运行稳定的excel导入功能突然异常&#xff0c;查看了日志&#xff0c;发现以下图示异常&#xff1a; 追踪代码发现是以下代码引起问题&#xff1a; 发现&#xff0c;WorkbookFactory.create(inputStream) 创建workbook对象时读取文件内容下标越界了 分析是因…

项目解决方案:街道社区视频监控接入、汇聚和联网设计方案

目 录 一、客户需求 二、网络拓扑图 三、方案描述 四、系统配置 1、服务器配置 2、带宽配置 五、方案优势 1. 平台可堆叠使用 2. 支持主流接入协议 4. 多种终端显示 5. 客户端功能强大 6. 一机一档 一、客户需求 1&#xff0c;一个街道有十个社…

SpringCloud-Docker原理解析

Spring Cloud和Docker的结合为微服务架构的部署和管理提供了强大的支持。本文深入剖析Spring Cloud与Docker的集成原理&#xff0c;从服务注册与发现、配置管理、负载均衡到容器化部署等方面展开详细解析。探讨Spring Cloud如何利用Docker容器技术实现服务的弹性伸缩&#xff0…

数据结构--双向链表专题

目录 1. 双向链表的结构2. 实现双向链表预先的准备初始化尾插、头插尾删、头删查找在pos位置之后插⼊数据删除pos位置的数据 3. 顺序表和双向链表的分析 1. 双向链表的结构 注意&#xff1a;这里的“带头”跟前面我们说的“头结点”是两个概念&#xff0c;为了更好的理解直接称…

爬虫入门五(Scrapy架构流程介绍、Scrapy目录结构、Scrapy爬取和解析、Settings相关配置、持久化方案)

文章目录 一、Scrapy架构流程介绍二、Scrapy目录结构三、Scrapy爬取和解析Scrapy的一些命令css解析xpath解析 四、Settings相关配置提高爬取效率基础配置增加爬虫的爬取效率 五、持久化方案 一、Scrapy架构流程介绍 Scrapy一个开源和协作的框架&#xff0c;其最初是为了页面抓取…

好书推荐丨细说Python编程:从入门到科学计算

文章目录 写在前面Python简介推荐图书内容简介编辑推荐作者简介 推荐理由粉丝福利写在最后 写在前面 本期博主给大家推荐一本Python基础入门的全新正版书籍&#xff0c;对Python、机器学习、人工智能感兴趣的小伙伴们快来看看吧~ Python简介 Python 是一种广泛使用的高级、解…

企微hook框架

https://wwm.lanzoum.com/ipUTp1ot1twh 密码:hvev 免费的企微框架 支持文本消息&#xff0c;图片消息&#xff0c;视频消息&#xff0c;文件消息。 其他可自行下载测试。 有兴趣可以进群交流。720192224 BOOL WxWorkSendData(string data) { WX_GETOBJDATA ob…

一键生成请求方法的工具 —— OpenAPI Typescript Codegen

文章目录 用法自定义请求参数的方法1&#xff09;使用代码生成器提供的全局参数修改对象2&#xff09;直接定义 axios 请求库的全局参数&#xff0c;比如&#xff1a;全局请求响应拦截器 报错解决 用法 首先下载axios npm install axios官网&#xff1a;https://github.com/f…

数字人的未来:数字人对话系统 Linly-Talker + 克隆语音 GPT-SoVITS

&#x1f680;数字人的未来&#xff1a;数字人对话系统 Linly-Talker 克隆语音 GPT-SoVITS https://github.com/Kedreamix/Linly-Talker 2023.12 更新 &#x1f4c6; 用户可以上传任意图片进行对话 2024.01 更新 &#x1f4c6; 令人兴奋的消息&#xff01;我现在已经将强…