MySQL 笔记7 – 权限操作与视图


MySQL 系列笔记是笔者学习、实践MySQL数据库的笔记

课程链接: MySQL 数据库基础入门教程
参考文档:
MySQL 官方文档
SQL 教程


一、权限操作


1、权限

  • 限制用户对数据库进行的操作类型
  • root 管理员拥有全部权限,可以为每个用户设置不同的权限
  • 在MySQL中,可以设置全局权限,指定数据库权限,指定表权限,指定字段权限

2、权限类别

权限类别 说明
CREATE 创建数据库、表或索引权限
DROP 删除数据库或表权限
ALTER ALTER更改表,比如添加字段、索引等
DELETE 删除数据权限
INDEX 索引权限
INSERT 插入权限
SELECT 查询权限
UPDATE 更新权限
CREATE VIEW 创建视图权限
EXECUTE 执行存储过程权限

3、权限命令

功能 命令
创建用户 CREATE USER ‘用户名’@‘localhost’ IDENTIFIED BY ‘密码’;
删除用户 DROP USER 用户名称
分配权限 GRANT 权限 (columns) ON 数据库对象 TO 用户 IDENTIFIED BY “密码” WITH GRANT OPTION
刷新配置信息 flush privileges;
查看权限 show grants
查看指定用户的权限 show grants for root@localhost
删除权限 REVOKE 权限 ON 数据库对象 FROM 用户;
  • WITH GRANT OPTION:能向下继续授予权限
  • 数据库对象:所有数据库:.;某个数据库:数据库名.*;某个表:数据库名.表名

二、视图


1、视图

  • 视图是一个虚拟表(引用基表,并没有真实的数据),其内容由查询定义
  • 同真实的表一样,视图包含一系列带有名称的列和行数据
  • 行和列数据来自定义视图的查询所引用的表,并且在引用视图时动态生成
  • 简单的来说视图是由select结果组成的表

2、视图的特性

  • 视图是对若干张基本表的引用,一张虚表,查询语句执行的结果
  • 不存储具体的数据(基本表数据发生了改变,视图也会跟着改变)
  • 可以跟基本表一样,进行增删改查操作(增删改操作有条件限制)

3、视图的作用

  • 安全性:创建一个视图,定义好该视图所操作的数据,之后将用户权限与视图绑定。grant语句可以针对视图进行授予权限。
  • 查询性能提高
  • 提高了数据的独立性

3、视图命令

创建视图:

CREATE [ALGORITHM]={UNDEFINED|MERGE|TEMPTABLE}]VIEW 视图名 [(属性清单)]AS SELECT 语句[WITH [CASCADED|LOCAL] CHECK OPTION];
  • ALGORITHM 参数

    • merge:处理方式替换式,可以进行更新真实表中的数据。将视图公式替换后,当成一个整体sql进行处理了
    • TEMPTABLE:具化式,由于数据存储在临时表(存在内存)中,所以不可以进行更新操作。先处理视图结果,后处理对视图的查询需求
    • UNDEFINED:mysql更倾向于选择替换方式,因为它更加有效
  • WITH CHECK OPTION:更新数据时不能插入或更新不符合视图限制条件的记录
  • LOCAL和CASCADED:决定了检查测试的范围,默认值为CASCADED

修改视图:

drop view 视图名称;

4、视图不可更新部分

  • 聚合函数;
  • DISTINCT 关键字;
  • GROUP BY子句;
  • HAVING 子句;
  • UNION 运算符;
  • FROM 子句中包含多个表;
  • SELECT 语句中引用了不可更新视图;
  • 只要视图当中的数据不是来自于基表,就不能够直接修改

GOOD LUCK!


MySQL 笔记7 -- 权限操作与视图相关推荐

  1. MYSQL笔记:删除操作Delete、Truncate、Drop用法比较

    今天小编给大家梳理一下MYSQL删除操作Delete.Truncate.Drop用法有什么区别,到底该如何合理使用,希望对大家能有帮助! 1.执行速度比较 Delete.Truncate.Drop关键 ...

  2. mysql DCL 数据权限操作指令

    DCL DCL是Data Control Language的缩写,主要包括数据权限有关的操作指令 用户管理操作 创建用户 -- username:用户名,ip:该用户访问ip,password:密码, ...

  3. 【MySQL】 # MySQL对用户权限的简单操作:(1)创建新用户(2)赋权限

    MySQL对用户权限操作的详细内容:MySQL权限操作 1. 创建新用户 一般使用 Navicat 直接登录 MySQL,也可以使用命令行 mysql -u root -p,然后输入密码即可. 1.1 ...

  4. x509mysql_涂抹mysql笔记-数据库中的权限体系

    涂抹mysql笔记-数据库中的权限体系 <>能不能连接,主机名是否匹配.登陆使用的用户名和密码是否正确. mysql验证用户需要检查3项值:用户名.密码和主机来源(user.passwor ...

  5. mysql角色附权和解除权限_MySql授权和撤销权限操作

    MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 用户后面可以加@'ip地址' identified by '密码' 例如: grant all on ...

  6. mysql 函数权限控制_MySql授权和撤销权限操作

    MySql授权和撤销权限操作 作者:PHPYuan 时间:2018-10-05 03:41:17 MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 用户 ...

  7. MySQL笔记:第14章_视图

    第14章_视图 1. 常见的数据库对象 2. 视图概述 2.1 为什么使用视图? 2.2 视图的理解 演示 3. 创建视图 3.1 创建单表视图 3.2 创建多表联合视图 3.3 基于视图创建视图 演 ...

  8. 数据库基础笔记(MySQL)7 —— 存储引擎和视图 ( 完结撒花 )

    存储引擎 实在是学浅才疏,只能大致写点,放篇大佬的,看详细的去吧 传送门 ,等我闲下来学会了再来补充 即一个表存储数据的方式,不同的存储引擎会提供不同的功能,性能等 可以用 engine 指定存储引擎 ...

  9. 浅显易懂 SQLite3 笔记(07)— 数据库视图简介及操作

    文章目录 前言 一.数据库系统的三级模式 二.视图定义和作用 1.什么是视图? 2.视图的作用? 三.SQL语句操作视图 1.创建视图 2.查询视图 3.更新视图 4.修改视图 5.删除视图 总结 前 ...

最新文章

  1. 复杂性理论研究的核心问题是什么
  2. linux进程网络均衡,linux多CPU进程负载均衡解析
  3. 【转】“线程间操作无效: 从不是创建控件的线程访问它”
  4. 3389改为3390端口如何改
  5. IP,IP地址,mac地址
  6. 博弈-巴什博奕-P/N图
  7. Python 第七篇:socket编程
  8. Magento WebServices SOAP API 创建和使用
  9. Beta阶段第1周/共2周 Scrum立会报告+燃尽图 03
  10. geoserver 发布mysql_Geoserver(四) 发布mysql表数据
  11. Postfix权威指南阅读笔记
  12. 计算机系统盘怎么扩充,扩大c盘空间,小编教你如何扩大C盘空间
  13. java中decrement,Java LongAdder decrement()用法及代碼示例
  14. 自用笔记17——泰波那契数列
  15. 2019初创企业投融资服务平台都有哪些?
  16. L1-040 最佳情侣身高差 (10 分)java
  17. 第1章 Oracle教程
  18. PAT-团体程序设计天梯赛-练习集-L1-039. 古风排版
  19. 微笑到颠笑,各种笑不停的英语说法
  20. css漂亮的侧导航栏,CSS3实现的可缩进的侧栏导航菜单

热门文章

  1. 51nod1258 序列求和 V4(伯努利数+多项式求逆)
  2. 学习笔记之-php编码技巧
  3. JavaScript 函数 伪数组 arguments
  4. 由于昨天没发博客,在此向广大粉丝们道歉。 今天发的是一个数据库的代码
  5. 2015生命之旅---第一站重庆
  6. 判断101-200之间有多少个素数,并输出所有素数(C)
  7. Object-C时间与字符串的转化 因多语言设置中造成返回Nil的解决方法
  8. 【学习小记】一般图最大匹配——带花树算法
  9. Python-语句执行
  10. 刷OJ时输入输出与字符串