【MySQL】视图和用户管理
视图
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。
注:视图和Read View 没有关系!
语法
//建立视图
create view view_name as [select ...];
//删除视图
drop view view_name;
特点
- 视图和基表是联动的,视图方便进行CURD操作
- 必须唯一命名
- 视图不能添加索引,也不能有关联的触发器和默认值
- 可以提高安全性
用户管理
账号信息
MySQL的用户信息也是以表的形式存储的,在mysql库下的user表里
//查看 账号名,登录权限,加密后的密码
select USER,HOST,authentication_string from user;
//其中HOST为localhost表示只能在主机登录
用户创建
create user 'username'@'登录主机/ip' identified by 'password'
//%表示可以在任意主机登录,严重不推荐
//设置密码可选,但更建议在创建用户时就设置好密码
//刷新
flush privileges;
用户删除
drop user 'username'@'登录主机/ip';
更改密码
//当前用户更改自己
set password=password('新的密码');
//root为某个用户更改密码
set password for 'username'@'主机名'=password('新的密码');
数据库权限
grant 权限列表 on 库.对象 to '用户名'@'登录位置' [identified by 'password'];
例如:
grant select on ...
grant select,delete,create on ...
grant all [privileges] on ...
//查看权限
show grants for 'username'@'登录主机';
-
*.*表示本系统中所有数据库的所有对象(包括表、视图、存储过程)
-
库.*表示此数据库的所有对象(包括表、视图、存储过程)
回收权限
revoke 权限列表 on 库.对象 from ''@'';