权限管理
创建用户
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修改记录,视图可以使用户操作方便,并保障了数据库系统安全;
视图特点
- 优点
- 简单化,数据所见即所得;
- 安全性,只能查询或修改视图中锁能见到的数据;
- 逻辑独立性,可以屏蔽真实表结构变化带来的影响;
- 缺点
- 性能相对较差,简单的查询会稍微复杂;
- 修改不方便,当视图的数据时复杂的聚合视图时,无法修改;
视图的操作
- 创建视图
语法:CREATE VIEW 视图名 AS 查询数据源表的语句;
#创建一个t_empinfo视图,该视图的数据是员工姓名,邮箱,手机号码
CREATE VIEW t_empinfo
AS
SELECT FIRST_NAME,LAST_NAME,email,PHONE_NUMBER FROM t_employees;
- 使用视图
#使用视图
#查询
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';
- 视图的修改
方式一: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;
- 视图的删除
语法:DROP VIEW 视图名
#删除t_empinfo视图
DROP VIEW t_empinfo;
- 删除视图不会影响原表的数据
视图的注意事项
- 视图不会独立存储数据,原表发生改变,视图的数据也发生改变。没有优化查询的性能
- 如果视图包含聚合函数的结果、GROUP BY分组后的结果、HAVING筛选过滤后的结果和UNION、UNION ALL联合后的结果则视图不可更新;