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联合后的结果则视图不可更新;
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Willing卡卡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值