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

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


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

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


一、权限操作


1、权限

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

2、权限类别

权限类别说明
CREATE创建数据库、表或索引权限
DROP删除数据库或表权限
ALTERALTER更改表,比如添加字段、索引等
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!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值