MySQL如何创建视图和用户
Posted 两片空白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL如何创建视图和用户相关的知识,希望对你有一定的参考价值。
目录
一.视图
1.1 概念
视图时一个虚拟表,其内容有查询来定义。同真实表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表数据变化也会影响到视图。
简单来说,一个表的中的数据太大了,通过查询条件来建立一张子表。修改子表的数据会影响主表,修改主表的数据会影响到子表。
1.2 使用
- 创建视图
在当前数据库中形成一个新的表结构。
语法:create view 视图名 as select .....
案例:
在当下数据库形成新的表结构:
- 修改视图
修改视图,基表也会发生变化。
- 修改基表
修改基表,视图也会发生变化。
- 删除视图
语法:drop view 视图名;
1.3 视图的规则和限制
-
和表一样,必须唯一命名。
-
创建视图数无限制,但要考虑复杂查询创建为视图之后的性能影响。
-
视图不能添加索引,页不能有关联的触发器或者默认值。
-
视图可以提高安全性,必须有足够的访问权限。
-
order by用在视图中。
-
视图可以和表一起使用。
二.用户管理
我们现在使用的是root用户,root用户权限太大。可以操作所有的库,由于权限大,导致风险过大。如果进行了误操作,导致损失严重。
于是就需要使用mysql的用户管理。一个用户只能操作特定的库,并且也只具有特定的权限。
2.1 用户
2.1.1 用户信息
MySQL中的用户都保存在系统数据库MySQL的user表中。
字段解释:
- host:表示这个用户可以重哪个主机登录。localhost,表示只能从本机登录。%表示从任意远端登录。
- user:用户名
- authentication_string:用户密码,通过password函数加密的
- *_priv:用户拥有的权限。
2.1.2 创建用户
注意:创建用户需要root来做。
语法:create user '用户名'@'登录主机/ip' identified by '密码';
案例:
2.1.3 删除用户
语法:drop user '用户名'@'主机名';
案例:
2.1.4 修改密码
- 自己改自己的密码
语法:set password=password('新的密码');(该语法在MySQL8.0以上已经不适用)
- root用户指修改指定用户密码
语法:set password for '用户名'@'主机名'=password('新的密码');(该语法在MySQL8.0以上已经不适用)。
- root修改指定用户密码(8.0版本以上)
语法:alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';
2.2 数据库权限
root用户拥有所有的权限。
2.2.1 给用户授权
刚创建好的用户没有任何权限。需要给root用户授权。
语法:grant 权限列表 on 库.对象名(表名) to '用户名'@'主机名 ' [identified by '密码'];
说明:
- 权限列表,多个权限用逗号隔开。
grant select on ......
grant select,delete, create on......
grant all [privileges] on...... --表示赋予该用户在该对象上的所有权限
- *.*:表示本系统中的所有数据库的所有对象(表)。
- 库.*:表示某个数据库中的所有数据对象。
- identified by 可选。如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户。
案例:
- 授权
- 使用权限
- 查看用户现有的权限
注意:如果发现赋权后没有生效,执行如下命令:
flush privileges;
2.2.2 回收权限
语法:revoke 权限列表 on 库名.对象 from '用户名'@'主机号';
以上是关于MySQL如何创建视图和用户的主要内容,如果未能解决你的问题,请参考以下文章