• MySQL视图、用户管理


    目录

    视图概念和操作

    视图基本操作

    视图规则和限制 

    用户管理

    用户


    视图概念和操作

    什么是视图?

            视图是一个虚拟表,由一个或多个基本表的查询结果组成(视图是存储在数据库中的查询的SQL 语句,不在数据库中以存储的数据值集形式存在)。视图是基于存储在数据库中的数据的可视化表示,它可以像表一样被查询和操作。视图的数据变化会影响到基表,基表的数据变化也会影响视图。视图可以简化复杂查询提供更方便的数据访问方式,并且可以保护基础数据的安全性

            需要注意的是,对视图的修改操作实际上是对基础表的修改操作。因此,当对视图进行插入、更新或删除操作时,实际上是对基础表进行相应的操作。视图只是提供了一种方便和灵活的方式来访问和操作基础表的数据。

    视图基本操作

    创建视图

    create view 视图名 as select 语句;
    

     实例:有一张部门表和一张员工表,创建一个视图,包含员工名和其部门名

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

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

     删除视图

    drop view 视图名; 

    示例: 

    视图规则和限制 

    1.与表名一样,必须唯一命名。

    2.创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响。

    3.视图不能添加索引,也不能有关联的触发器或默认值。

    4.视图可以提高安全性,必须有足够的访问权限。

    一般这样做:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定。这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限给不同的用户使用。

    5.order by可以用在视图中,但是如果从该视图检索数据select中也含有order by,那么该视图中的order by将被覆盖

    6.视图可以表一起使用。

    用户管理

    倘若只能使用root用户访问数据库,那么就会数据库就会存在安全隐患,这时就需要使用MySQL的用户管理。

    用户

    用户信息:MySQL的用户信息都存储在系统数据库mysql的user表中。

    查看user表:

    字段解释:

    host:表示该用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆

    user:用户名

    authentication_string:用户密码通过password函数加密后的 

    *_priv:表示用户是否拥有该权限,如下:

    创建用户 

    语法:

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

    创建时,登陆地址使用%表示任意登陆地址,删除时也同理。

    示例:

    创建一个用户名为ys的用户:

    使用ys用户登录:

    修改用户密码

    普通用户可以通过调用password函数修改自己的密码,超级用户可以通过调用password函数修改任意用户的密码。 

    删除用户

    删除用户的SQL如下:

    DROP USER '用户名'@'登录地址'

    给用户授权

    SQL:

    GRANT 权限列表 ON 库名.对象名 TO '用户名'@'登录地址' [IDENTIFIED BY '密码'];
    

    说明: 

    权限列表:表示要授予用户何种权限,多个权限

    库名.对象名:表示要授予用户哪个数据库下的哪个对象的权限。

    '用户名'@'登录地址':表示给哪一个用户授权。

    IDENTIFIED BY '密码':可选,如果用户存在,则在授予权限的同时修改改用户的密码,如果用户不存在,则创建该用户。

    结合视图,要给用户授权访问某个视图,可以使用下面GRANT语句:

    GRANT SELECT ON database_name.view_name TO 'username'@'localhost';

     查看用户现有权限

    在root用户下授权:

    授权后通过show grants for '用户名'@'登录地址' 命令,可以查看该用户现有的权限,如下:

    回收权限

     回收权限的SQL如下:

    REVOKE 权限列表 ON 库名.对象名 FROM '用户名'@'登录地址';
    

     语法和授予权限类似。

    例如:root用户回收权限

    普通用户失去访问权限了:

     

  • 相关阅读:
    迷你无人车 Navigation 导航(5)— 基础框架学习
    OpenMMLab简介
    【1805. 字符串中不同整数的数目】
    AcWing第126场周赛 - 思维+字符串处理+递归
    【大数据入门核心技术-基本概念】(一)大数据相关基本概念
    浅聊python函数装饰器和闭包
    linux线程创建等待及退出总结
    使用React Buddy辅助React开发
    基于非支配排序遗传算法的多目标水光互补优化调度附Matlab代码
    IDEA在多线程环境下断点调试-验证synchronized监视锁的运行状态
  • 原文地址:https://blog.csdn.net/u014801954/article/details/133499800