读
第四章《管理MySQL库与表》
第五章《MySQL的权限管理》
总结
1:当配置好 MySQL 数据库后,发现有几个默认的库,他们的意义和作用?(这里只做简单了解,之后用到的会分析,现在知道有这么个东西就好)
- information_schema 记录数据表/用户/视图等信息。
- mysql 用户权限/帮助/日志等信息
- performance_schema MySQL性能指标库
2:数据库是文件么?在哪里放着呢?
mysql.conf 配置中定义了数据存放位置 datadir = /var/lib/mysql
- 之前的数据库结构
- 在 /var/lib/mysql 随便建立一个文件夹
- 再看数据库结构
- 是不是已经成功建立了这个库呢?
- 这里只是试验,直接建立文件夹,在正常环境下,还时应该使用 DDL 语句来建立/删除 库。
- 因为直接文件夹建立会有权限/...问题,导致其他问题的失败。
- 数据表同理。
3:关于数据库权限的认知小Tip
- MySQL用户 root 和 linux root 不是一回事,数据库 root 只不过是初始化时候自己建立的一个用户而已,随时可以删除/修改。
4:数据库权限逻辑?
- MySQL 总体是使用了白名单机制,明确规定了哪些用户能做哪些事,但是不能规定哪些用户不能做那些事。
- MySQL 权限总体逻辑分为下面几块。
- 能不能连接?
- 用一句话概括 ’我是谁‘ ’我从哪来‘ ’我从哪去‘
- 对应上面 验证[用户名/密码] -> 验证来源主机->是否有对应的数据库权限。
4:如何在数据库中新建一个用户?
- 注意
- 用户名大小不能超过 字符。
- 大小写敏感。
- 语句也很简单
- CREATE USER 用户名@'访问IP(%或者空代表所有)' identified by '密码';
- 也可以使用 GRANT 语句创建。
- 设置完成后会自动更新授权表,直接使用密码登录即可。
5:那么,如何设置权限呢?
- 使用 GRANT 设置权限
- GRANT SELECT ON `demo`.`user` TO 'lihong'@'%'; // 这里允许lihong用户查找demo.user表
- 可以使用
- show grants; // 查看自己的全部权限
- 使用 REVOKE 回收权限
- REVOKE SELECT ON `user` FROM 'lihong'@'%'; // 回收 lihong 用户的查找权限
- REVOKE ALL PRIVILEGES, GRANT OPTION FROM 用户名; // 回收该用户下的所有权限
6:删除用户
- 很简单,前提应该回收所有权限
- drop user 用户名@'访问主机';
7:MySQL 中的权限级别
- 在 user 表中的权限是 全局 权限。
- grant select on *.* to lihong; // 设置lihong用户拥有全局读权限