MYSQL视图用户管理
MYSQL视图
文章目录
- MYSQL视图
- 1. 基本使用
- 2. 视图规则和限制
- 用户管理
- 1. 用户
- 2. 数据库的权限
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图
1. 基本使用
- 创建视图
create view 视图名 as select语句;
案例
create view v_ename_dname as select ename, dname
from EMP, DEPT where EMP.deptno=DEPT.deptno;
select * from v_ename_dname;
+--------+------------+
| ename | dname |
+--------+------------+
| CLARK | ACCOUNTING |
| KING | ACCOUNTING |
| MILLER | ACCOUNTING |
| SMITH | RESEARCH |
| JONES | RESEARCH |
| SCOTT | RESEARCH |
| ADAMS | RESEARCH |
| FORD | RESEARCH |
| ALLEN | SALES |
| WARD | SALES |
| MARTIN | SALES |
| BLAKE | SALES |
| TURNER | SALES |
| JAMES | SALES |
+--------+------------+
- 修改了视图,对基表数据有影响
update v_ename_dname set dname='sales' where ename='CLARK';
select * from EMP where ename='CLARK';
- 修改了基表,对视图有影响
mysql> update EMP set deptno=20 where ename='JAMES'; -- 修改基表
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from v_ename_dname where ename='JAMES';
+-------+----------+
| ename | dname |
+-------+----------+
| JAMES | RESEARCH | <== 视图中的数据也发生了变化
+-------+----------+
- 删除视图
drop view 视图名;
2. 视图规则和限制
- 与表一样,必须唯一命名(不能出现同名视图或表名)
- 创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响
- 视图不能添加索引,也不能有关联的触发器或者默认值
- 视图可以提高安全性,必须具有足够的访问权限
- order by 可以用在视图中,但是如果从该视图检索数据 select 中也含有 order by ,那么该视图中的order by 将被覆盖
- 视图可以和表一起使用
用户管理
如果我们只能使用root用户,这样存在安全隐患。这时,就需要使用MySQL的用户管理。
1. 用户
1.1 用户信息
:
MySQL中的用户,都存储在系统数据库mysql的user表中
mysql> select host,user,authentication_string from user;
+-----------+---------------+-------------------------------------------+
| host | user | authentication_string |
+-----------+---------------+-------------------------------------------+
| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+-----------+---------------+-------------------------------------------+
字段解释:
- host:表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆
- user:用户名
- authentication_string:用户密码通过password函数加密后的
- *_priv:用户拥有的权限
1.2 创建用户
:
语法:
create user '用户名'@'登陆主机/ip' identified by '密码';
案例:
mysql> create user 'wolf'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.01 sec)
mysql> select host,user, password from user where user='wolf';
+-----------+-------+-------------------------------------------+
| host | user | password |
+-----------+-------+-------------------------------------------+
| localhost | wolf | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+-------+-------------------------------------------+
1.3 删除用户
:
drop user '用户名'@'主机名'
示例:
mysql> drop user 'wolf';
ERROR 1396 (HY000): Operation DROP USER failed for 'wolf'@'%' <= 直接给个用户名,不能删除,它默认是%,表示所有地方可以登陆的用户
mysql> drop user 'wolf'@'localhost';
Query OK, 0 rows affected (0.00 sec)
1.4 修改用户密码
:
语法:
- 自己改自己密码
set password=password('新的密码');
- root用户修改指定用户的密码
set password for '用户名'@'主机名'=password('新的密码');
set password for 'litao'@'localhost'=password('abcdefg');
2. 数据库的权限
MySQL数据库提供的权限列表:
2.1 给用户授权
:
刚创建的用户没有任何权限。需要给用户授权。
语法:
grant 权限列表 on 库.对象名 to '用户名'@'登陆位置' [identified by '密码']
说明:
- 权限列表,多个权限用逗号分开
grant select on ...
grant select, delete, create on ....
grant all [privileges] on ... -- 表示赋予该用户在该对象上的所有权限
- . : 代表本系统中的所有数据库的所有对象(表,视图,存储过程等)
- 库.* : 表示某个数据库中的所有数据对象(表,视图,存储过程等)
- identified by可选。 如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户
案例:
mysql> show databases; -- wolf账户看不到mytest库
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
2 rows in set (0.00 sec)-- root 给 litao 赋予账户查询mytest库的DEPT表的权限
mysql> grant select on mytest.DEPT to 'wolf'@'localhost';
Query OK, 0 rows affected (0.03 sec)mysql> show databases; -- wolf账户可以看到mytest库
+--------------------+
| Database |
+--------------------+
| information_schema |
| mytest |
| test |
+--------------------+
3 rows in set (0.01 sec)
mysql> use mytest; -- 切换到mytest库
mysql> select * from DEPT; -- 查询 DEPT表
+--------+------------+----------+
| deptno | dname | loc |
+--------+------------+----------+
| 10 | sales | NEW YORK |
| 20 | RESEARCH | DALLAS |
| 30 | SALES | CHICAGO |
| 40 | OPERATIONS | BOSTON |
+--------+------------+----------+
4 rows in set (0.00 sec)
mysql> delete from DEPT; -- 没有删除权限
ERROR 1142 (42000): DELETE command denied to user 'litao'@'localhost' for table 'DEPT'
注意:如果发现赋权限后,没有生效,执行如下指令:
flush privileges;
2.2 回收权限
:
语法:
revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置';
示例:
-- 回收wolf对数据库的所有权限
revoke all on mytest.DEPT from 'wolf'@'localhost';
MYSQL视图用户管理相关推荐
- MySQL笔记 - 用户管理
转自: https://segmentfault.com/a/1190000014856560 MySQL笔记 - 用户管理 tags: 数据库 MySQL 用户管理 学习目标 MySQL是一个多用户 ...
- mysql 视图用户_MySQL视图,存储过程,用户管理
1. 视图 一张虚拟表,就是将一个经常被使用的查询作为一个虚拟表,开发者查询的时候不需要再次书写SQL,而是直接调用对应的视图就可,调用视图以后MySQL会执行这个查询SQL. # 创建视图 crea ...
- MySql的用户管理权限
登陆连接 1.127.0.0.1/其他远程数据库 mysql -u admin -p -h 127.0.0.1 -P 3306 -D t_user 注:-u 代表用户,-p代表密码 ,-h代表host ...
- mysql数据库用户管理及日志文件
用户管理 实际应用: MySQL数据库是信息系统中非常重要的一个环节, 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.所以通常由管理员创建不同的管理账户,分配不同的操作权限, ...
- jsp mysql修改密码_Servlet+JSP+MySQL实现用户管理模块之七、实现用户信息更新和重置密码...
实现用户信息更新和重置密码功能 如果用户信息很多的时候,感觉这项实现起来比较麻烦的.因为要考虑用户哪些信息需要更新哪些不需要更新,就必须先更原来的信息比对.呵呵,当然如果考虑到多个数据库表间的操作的话 ...
- hadoop设置用户权限_No.9 MySQL之用户管理与权限设置
一.MySQL中用户的书写方式:用户名@'登录地址' chongge@'localhost' 本地登录的用户 chongge@'127.0.1.1' 远程登录的用户 chongge@'127.0. ...
- MySQL(用户管理,常用sql语句,数据库备份恢复,MySQL调优,恢复误操作数据)...
一.MySQL用户管理. 一个MySQL数据库里可以跑多个库,总不能给所有人的程序员root用户,则可以给他们单独的用户访问数据库. 创建用户:(grant all on *.* to 'user1' ...
- MySQL数据库用户管理操作(二)
文章目录 一.数据表操作 1.克隆表 1.1 先克隆表,再克隆数据 1.2 克隆表的数据并创建表 2.清空表 2.1 delete清空表 2.2 truncate清空表 2.3 drop.trunca ...
- Mysql之用户管理
目录 一,Mysql中6种常用的约束/规则 1,主键和外键的关系 1.1,创建主表 1.3 为主表vs01添加一个主键约束,主键名建议以pk开头 1.4 为从表vs02表添加外键,并将vs02表的hb ...
最新文章
- 【学习笔记】Silverlight框架:Jounce(4)——事件通信
- python的数据类型和变量
- 判断一个数是不是2的指数幂
- 读取一个文件,获取其中出现次数最多的前五个字符以及次数
- Deepin中设置文件或文件夹权限
- 章磊回答: 姚期智提出的百万富翁难题被破解? 多方安全计算MPC到底是个什么鬼?
- C++总结笔记(五)——构造函数和析构函数
- python随机读取字符_利用python3随机生成中文字符的实现方法
- Windows Workflow HOL学习笔记(十二):创建状态基工作流
- inner join 重复数据_pandas数据合并菜谱
- 各个平台下 Perl 源码安装教程
- 引用 乐嘉写给所有女人的话,男人千万别错过!
- 懵逼树上懵逼果:探索二分法搜索
- typecho与WordPress博客程序评测及推荐
- onTouchEvent事件不敏感
- MySQL 必知必会系列(五)
- 微信小程序--动态时间实现
- java中关键字缺省(default)
- 马彩未解禁:中国互联网损失2000亿
- [生存志] 第109节 秦始皇初玩叠人塔