MySQL视图、用户管理全面指南

 更新时间:2025年07月25日 09:56:21   作者:绵阳的脑内SSD  
MySQL作为一款广泛应用的关系型数据库管理系统,其视图、用户管理、访问控制以及连接池原理等知识点对于数据库的高效使用和安全管理至关重要,这篇文章主要给大家介绍了关于MySQL视图、用户管理的相关资料,需要的朋友可以参考下

前言:

本节内容讲述两个板块的内容, 一个板块是数据库的视图, 另一个板块是mysql的用户管理,主要讲解了用户的增删, 以及查和修改密码。 然后讲述了用户的赋予和收回权限。 下面开始我们的学习吧!

视图

认识视图

视图是一种使用mysql表结构的方式。同时视图是一种虚拟表, 同真实的表一样,视图也包含一系列带有名称的列和行数据。视图和基表是两个对应的概念,其中视图是虚拟表,基表就是原本的保存在数据库中的表

就比如,上面这五张表, 就是基表。

然后我们使用内连接,连接emp和dept,查出来的那个结果其实也是一张表。

然后呢,未来我们不想再重新查这个表,而是让这个表一直存在着,因为我们一直要用。 这个时候,我们就可以让上面这个表变成视图。 

然后就多了一张表,我们说视图是虚表,我们修改视图里面的表会不会影响我们原表呢?

这里做一下实验,用update更新一下数据:

首先能够观察到视图里面的被改了。那么原表里面的呢?

原表中的也被改了。所以我们就可以推测,视图其实就是一张虚表,视图和原表是联通的,其中的数据并没有持久到磁盘。

视图的规则与限制

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

用户的增删查改

一般情况下,我们使用数据库,下面默认就有一个数据库mysql:

这个数据库里面有许许多多的表:

其中, 保存我们用户信息的就是user表, 下面是查表后的root信息:

其中User就是用户的名称,然后Host就是允许用户当前从哪里进行登录。然后其中下面的字段就是权限信息。然后后面有一个字段是密码, 这个密码是加密的, 只有mysql能够看懂, 也就是红框框的内容。

创建用户

信息太多我们就直接查两个字段: User和host

我们在mysql里面开账号,不仅需要在mysql里面创建用户的名称和密码,还要规定用户能够从哪里登录。所以我们想要创建一个用户,最简单的方法就是使用insert向里面插入一个数据。但是由于属性很多,一般不推荐这样写,所以就使用创建用户的sql语句:        

create user '用户名'@'登陆主机/ip'identified by '密码';
  • 这里后面的登录主机不能随便写!!!一般就写127.0.0.1本地环回或者localhost,直接在本地登录。
  • 想要创建一个能连接任意主机的用户就是使用%,不推荐 。

这里创建一个新用户: 

然后我们就看到,我们能能够看到的数据库和我们root能够看到的数据库,完全不一样。这是因为新用户没有对应的权限!

删除用户

删掉用户可以使用root直接将User表中的数据删掉。但是不推荐。这里同样可以使用sql语句:

drop user 用户名@登录ip;

修改密码

修改密码一般可以自己该自己或者root改自己, 就是使用:

  set password = password(密码); //自己改自己。
set password for '用户'@'ip' = password(密码);//root改别人

用户的权限

 我们用户新创建出来的时候是看不到这些数据库的:

所以就需要我们进行赋权: 

给与权限

grant 权限列表 on 库.表 to '用户名'@'登录ip';

然后我们就能看到这个表,并且能够进入了:

        我们可以把所有表的权限都给用户:

然后我们就能看到所有的表了!!!

收回权限

也可以回收权限revoke:

revoke 权限 on 数据库表名 from '用户名'@'主机ip';

 然后我们可以使用show grants查看某一个用户@登录ip的所有赋予权限:

show grants for '用户名'@'登录ip';

总结 

到此这篇关于MySQL视图、用户管理的文章就介绍到这了,更多相关MySQL视图、用户管理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 面试被问select......for update会锁表还是锁行

    面试被问select......for update会锁表还是锁行

    select … for update 是我们常用的对行加锁的一种方式,那么select......for update会锁表还是锁行,本文就详细的来介绍一下,感兴趣的可以了解一下
    2021-11-11
  • Mysql数据库性能优化一

    Mysql数据库性能优化一

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情
    2016-04-04
  • explain命令为什么可能会修改MySQL数据

    explain命令为什么可能会修改MySQL数据

    这篇文章主要介绍了explain命令为什么可能会修改MySQL数据,帮助大家更好的理解和使用MySQL,感兴趣的朋友可以了解下
    2020-12-12
  • Fedora环境下装MySQL命令方法介绍

    Fedora环境下装MySQL命令方法介绍

    刚刚涉及mysql如果有不对的地方,请大家指正,希望自己的一点点经验,能够帮到大家
    2012-11-11
  • mybatis中bind的使用示例详解

    mybatis中bind的使用示例详解

    在 MyBatis 中,bind 标签允许在 OGNL 表达式上下文中创建一个变量并将其绑定到当前上下文,常用于动态 SQL 中简化复杂表达式或重复计算,这篇文章主要介绍了mybatis中bind的使用示例详解,需要的朋友可以参考下
    2025-06-06
  • mybatis 实现 SQL 查询拦截修改详解

    mybatis 实现 SQL 查询拦截修改详解

    这篇文章主要介绍了mybatis 实现 SQL 查询拦截修改详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 一文掌握MySQL表的创建和约束

    一文掌握MySQL表的创建和约束

    这篇文章主要和大家分享一下数据库的创建和销毁语法以及详细讲解MySQL表的创建代码和约束的使用,文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-07-07
  • mysql的中文数据按拼音排序的2个方法

    mysql的中文数据按拼音排序的2个方法

    这篇文章主要介绍了mysql的中文数据按拼音排序的2个方法,用于一些特殊环境,需要的朋友可以参考下
    2014-06-06
  • 教你为MySQL数据库换挡加速

    教你为MySQL数据库换挡加速

    如果你是个赛车手,并且按一下按钮就能够立即更换引擎而不需要把车开到车库里去换,那会是什么感觉呢?MySQL数据库为开发人员所做的就好像是按按钮换引擎;它让你选择数据库引擎,并给你一条简单的途径来切换它。
    2010-02-02
  • MySQL8.0与MySQL5.7的区别详解

    MySQL8.0与MySQL5.7的区别详解

    MySQL8.0是2018年4月20日发布的全球最受欢迎的开源数据库的一个非常令人兴奋的新版本,下面这篇文章主要给大家介绍了关于MySQL8.0与MySQL5.7区别的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01

最新评论