MySQL学习笔记.安全管理
目录
- 用户管理
- 添加删除用户
- 修改用户名,密码
- 权限管理
- 授予权限
- 权限转移和限制
- 权限回收
用户管理
添加删除用户
1.添加用户
可以使用CREATE USER添加一个或多个用户。
语法格式:CREATE USER '用户名' @'主机名' IDENTIFIED BY PASSWORD,USER '用户名' @'主机名' IDENTIFIED BY PASSWORD...
create user
'user001'@'localhost' identified by 'root',
'user002'@'localhost' identified by 'root';
这里创建两个用户
mysql> create user'user001'@'localhost' identified by 'root', 'user002'@'localhost' identified by 'root';
Query OK, 0 rows affected (0.01 sec)mysql> use mysql;
Database changed
mysql> select * from user;
已创建
这里尝试登录一下user001这个用户
已登录进来
2.删除用户
语法格式:DROP USER 用户
这里删除user001用户
在这个用户下删除是会出现错误的,要回到root账户下
OK已经成功删除该用户
修改用户名,密码
1.修改用户名
语法格式:rename user '用户名' @'主机名' to '新用户名' @'主机名';
这里把用户user002修改为user001
mysql> rename user 'user002'@'localhost' to 'user001'@'localhost';
Query OK, 0 rows affected (0.00 sec)mysql> use mysql;
Database changed
mysql> select * from user;
已经修改完毕
2.修改用户密码
语法格式:set password for '用户名' @'主机名'=password('新密码');
这里把user001的密码修改为python
mysql> set password for 'user001'@'localhost' =password('python');
Query OK, 0 rows affected (0.00 sec)mysql>
权限管理
授予权限
授予的权限为以下几种
1.列权限:和表中的一个具体列相关
2.表权限:和一个具体表中的所有数据相关
3.数据库权限:和一个具体的数据库中的所有表相关
4.用户权限:和MySQL所有数据库相关,例如删除已有数据库或创建一个新数据库的权限
授予表权限
这里授予user001select student表的权限
mysql> grant select-> on student-> to user001@localhost;
Query OK, 0 rows affected (0.00 sec)
这时在user001用户下就可以查询student表了
授予列权限
列权限只能取SELECT,INSERT,UPDATE,后面加上列名
授予update权限给user001
mysql> grant update(sno,sname,sage)-> on student-> to user001@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> update student set sage=30 where sno='2018001001';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0mysql> select * from student;
+------------+--------------+--------+------+-------+
| sno | sname | sex | sage | sdept |
+------------+--------------+--------+------+-------+
| 2018001001 | zhangsan | male | 30 | cs |
| 2018001002 | lisi | female | 19 | MA |
| 2018001003 | jack | male | 20 | CS |
| 2018001004 | clinton | male | 21 | IS |
| 2018001005 | trump | male | 19 | IS |
| 2018001006 | putin | male | 20 | CS |
| 2018001007 | starlin | male | 19 | MA |
| 2018001008 | hilery | female | 19 | IS |
| 2018001009 | zhangming | female | 20 | CS |
| 2018001010 | ligang | male | 19 | MA |
| 2018001011 | 令狐冲 | male | 18 | cs |
| 2018001012 | 任盈盈 | female | 19 | MA |
| 2018001013 | 岳不群 | male | 20 | CS |
| 2018001014 | 余沧海 | male | 21 | IS |
| 2018001015 | 林平之 | male | 19 | IS |
| 2018001016 | 岳灵珊 | male | 20 | CS |
| 2018001017 | 朱元璋 | male | 19 | MA |
| 2018001018 | 郑成功 | female | 19 | IS |
| 2018001019 | 爱新觉罗玄烨 | female | 20 | CS |
| 2018001020 | 慈禧 | male | 19 | MA |
+------------+--------------+--------+------+-------+
20 rows in set (0.00 sec)mysql> update student set sdept='MA' where sno='2018001001';
ERROR 1143 (42000): UPDATE command denied to user 'user001'@'localhost' for column 'sdept' in table 'student'
mysql>
因为没有授予user001update sdept的权限,所以会报错
授予数据库权限
授予user001在数据库yingmo中所有表的select权限
首先在yingmo数据库中创建两个表
mysql> grant select-> on yingmo.*-> to user001@localhost;
Query OK, 0 rows affected (0.00 sec)
这时已经可以在user001用户中看到
授予user001所有yingmo数据库中所有数据库权限
grant all
on *
to user001@localhost;
授予用户权限
授予user001对数据库的所有表的create,alter,drop权限
grant create,alter,drop
on *.*
to user001@localhost;
权限转移和限制
mysql> grant select-> on yingmo.student-> to user001@localhost-> with grant option;
Query OK, 0 rows affected (0.00 sec)mysql>
这里已经把select权限授予user001,这里将select权限传递给user002,此时创建user002用户
mysql> create user-> 'user002'@'localhost' identified by 'root';
Query OK, 0 rows affected (0.00 sec)
登录user002用户
权限已转移
这样的转移方式似乎没有添加限制,如何去限制呢?
如限制user002每两个小时处理一条select语句
mysql> grant select-> on yingmo.student-> to user002@localhost-> with max_queries_per_hour 2;
Query OK, 0 rows affected (0.00 sec)
权限回收
回收user001对student表的select权限
mysql> revoke select-> on student-> from user001@localhost;
使用
mysql> revoke all privileges,grant option-> from user001@localhost;
Query OK, 0 rows affected (2.08 sec)
回收user001的全部权限
此时在user001用户中无法查看数据库yingmo
MySQL学习笔记.安全管理相关推荐
- 【mysql学习笔记整理】
/*mysql学习笔记整理*/ /*常用的数据库操作对象*/ #库的操作 #创建 #数据库的创建 USE mysql; CREATE DATABASE db_x; #删除 #删除数据库 DROP DA ...
- 初识mysql学习笔记
使用VMVirtualBox导入Ubuntu后,可以通过sudo apt-get install mysql-server命令下载mysql. 在学习过程中,我遇到了连接不上Xshell的问题.最终在 ...
- MySQL学习笔记07【事务、用户管理和权限管理】
MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...
- MySQL学习笔记06【多表查询、子查询、多表查询练习】
MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...
- MySQL学习笔记05【多表操作、三大范式、数据库的备份和还原】
MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...
- MySQL学习笔记04【数据库的查询操作、今日内容、表的约束】
MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...
- MySQL学习笔记03【数据库表的CRUD操作、数据库表中记录的基本操作、客户端图形化界面工具SQLyog】
MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...
- MySQL学习笔记02【SQL基本概念与通用语法、数据库的CRUD操作】
MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...
- MySQL学习笔记01【数据库概念、MySQL安装与使用】
MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...
- Mysql学习笔记(七)查(补充)
Mysql学习笔记(七)查(补充) 原文:Mysql学习笔记(七)查(补充) PS:五一还是要学习...虽然有点苦逼..但是路是自己选的,那么自己就要坚持的走下去... 学习内容: 1.数据库查找的补 ...
最新文章
- vue 编写H5页面在公众号外部获取手机本地坐标经纬度
- Python中数字以及算数运算符的相关使用
- verilog的$dumpfile和$dumpvar系统任务详解
- 如何在outlook的日历Calendar里实现按照多时区显示日程安排
- Effective C++学习第二天
- 吴恩达 深度学习 2021版 作业
- python 爬取百度日历
- 程序员校招社招简历模板分享和硬技能
- python 实现一个属于自己的语音播报器
- 透视投影中已知两平面的单应矩阵,能否求出这两平面的夹角?
- Oracle EBS系统维护工具
- ubuntu添加桌面快捷方式图标
- mysql database alias_mysql小结——基础篇
- 逆水寒江湖无限服务器等级,逆水寒上限多少级 逆水寒等级上限是多少
- ktt算法 约化_svm算法 最通俗易懂讲解
- 王欣复出后的第一款产品
- Ryzen3 2200g安装Debian11.1后配置VBox
- 微信公众号--开发模式之用户关注后自动回复(Java实现)
- 谁再瞧不起搬砖的我。。
- 从HTTP状态 301,302,200 来看页面跳转