目录
二、mysql默认数据库里面的四张表(user,db,tables_priv,columns_priv)
一、mysql简介
1、三个w
why
数据在内存中容易丢失
数据在文件中,不便于操作
what
使用完整的管理系统统一管理,易于查询
where
凡是需要持久化存储数据的地方
术语
DB
数据库(database):存储数据的“仓库”。它保存了一系列有组织的数据。
DBMS
数据库管理系统(Database Management System)。数据库是通过DBMS创建和操作的容器
SQL
结构化查询语言(Structure Query Language):专门用来与数据库通信的语言
二、mysql默认数据库里面的四张表(user,db,tables_priv,columns_priv)
1、user表(用户层权限)
首先登陆的时候验证Host,User,Password(authentication_string)也就是ip,用户名,密码是否匹配,匹配登陆成功将会为登陆者分配权限,分配权限的顺序也是按照上面四张表的排列顺序进行的,举个例子,如果user表的Select_priv为Y说明他拥有所有表的查找权限,如果为N就需要到下一级db表中进行权限分配了。其中的%是通配符,代表任意的意思
2、db表(数据库层权限)
来到db表之后会匹配Host,User然后会根据Db字段对应的表进行权限分配,像Select_priv这些字段对应的权限大家应该都能看出来是对应着什么权限了吧,这里不细说了(不偷懒,举个例子Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv分别代表着查询,增加,更新,删除,创建,销毁)。其中Y代表这拥有此项权限,N则代表没有此项权限。
3、tables_priv表(表层权限)
与上面一样,这是通过Host,Db,User,Table来进行定位到表层的一个权限分配。不过它只有Table_priv和Column_priv两个字段来记录权限。
4、columns_priv表(字段层权限)
顾名思义,字段层权限,通过Host,Db,User,Table,Column来进行定位到字段层的一个权限分配,只有Column_priv来记录权限。
5、查询权限表的sql语句
SELECT Host,User,authentication_string from user;
SELECT * from user;-- (用户层权限)
SELECT * from db;-- (数据库层权限)
SELECT * from tables_priv;-- (表层权限)
SELECT * from columns_priv;-- (字段层权限)
三、mysql之账号管理、建库以及四大引擎
1、账号管理
0.查询用户
SELECT * from user;
1.创建用户并设置登录密码
#注意版本问题
#MySQL5.7
#命令:create user 用户名 identified by '密码';
#注:ide