我是靠谱客的博主 高挑老师,最近开发中收集的这篇文章主要介绍MySQL中的权限管理及视图操作权限管理视图,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

权限管理

创建用户

CREATE USER 用户名
IDENTIFIED BY 密码

对用户进行授权

GRANT ALL ON 数据库.表名 TO 用户名;

撤销用户权限

REVOKE ALL ON 数据库.表名 FROM 用户名;

删除用户

DROP USER 用户名;

权限管理案例

#创建用户名为kaka密码为123的用户
CREATE USER 'kaka' IDENTIFIED BY '123';
#授权
#对kaka开放stu表的授权
GRANT ALL ON companydb.`stu` TO 'kaka';
#对kaka开放所有表的授权
GRANT ALL ON companydb.* TO 'kaka';
#撤销
#撤销kaka对stu表的权限
REVOKE ALL ON companydb.stu FROM 'kaka';
#删除kaka用户
DROP USER 'kaka';

视图

概念

是一个虚拟表,只操作部分数据;从一个表中或多个表中查询出来的结果表,作用和真实表一样,包含一系列的带有行和列的数据。视图中,可以使用SELECT语句查询数据,也可以使用INSERT、UPDATE、DELETE修改记录,视图可以使用户操作方便,并保障了数据库系统安全;

视图特点

  • 优点
    • 简单化,数据所见即所得;
    • 安全性,只能查询或修改视图中锁能见到的数据;
    • 逻辑独立性,可以屏蔽真实表结构变化带来的影响;
  • 缺点
    • 性能相对较差,简单的查询会稍微复杂;
    • 修改不方便,当视图的数据时复杂的聚合视图时,无法修改;

视图的操作

  1. 创建视图
 语法:CREATE VIEW 视图名 AS 查询数据源表的语句;
#创建一个t_empinfo视图,该视图的数据是员工姓名,邮箱,手机号码
CREATE VIEW t_empinfo
AS
SELECT FIRST_NAME,LAST_NAME,email,PHONE_NUMBER FROM t_employees;
  1. 使用视图
#使用视图
#查询 
SELECT * FROM t_empinfo WHERE FIRST_NAME='Steven' AND LAST_NAME='King';
#修改 只能修改得到的
UPDATE t_empinfo SET email = 'Kings' WHERE FIRST_NAME='Steven' AND LAST_NAME='King';
  1. 视图的修改
方式一:CREATE OR REPLACE VIEW 视图名 AS 查询源表的语句;
方式二:ALTER VIEW 视图名 AS查询源表的语句;
#视图的修改
#方式1:存在就替换数据,不存在就新建
CREATE OR REPLACE VIEW t_empinfo
AS
SELECT employee_id,FIRST_NAME,LAST_NAME,email,PHONE_NUMBER FROM t_employees;
#方式2
ALTER VIEW t_empinfo
AS
SELECT FIRST_NAME,LAST_NAME,email,PHONE_NUMBER FROM t_employees;
  1. 视图的删除
语法:DROP VIEW 视图名
#删除t_empinfo视图
DROP VIEW t_empinfo;
  • 删除视图不会影响原表的数据

视图的注意事项

  • 视图不会独立存储数据,原表发生改变,视图的数据也发生改变。没有优化查询的性能
  • 如果视图包含聚合函数的结果、GROUP BY分组后的结果、HAVING筛选过滤后的结果和UNION、UNION ALL联合后的结果则视图不可更新;

最后

以上就是高挑老师为你收集整理的MySQL中的权限管理及视图操作权限管理视图的全部内容,希望文章能够帮你解决MySQL中的权限管理及视图操作权限管理视图所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部