目录
一、安装下载
MySQl的安装以及环境的搭建博主已经在前面的博客有写过,所有大家点击链接就可看到相关步骤
链接: http://t.csdn.cn/eY06X
二、用户管理(三种权限,三个环境)
项目经理 数据库而言:增删改查,Create、drop等权限,一般具备所有权限
项目组长 数据库而言:只具备增删改查
3)开发人员:数据库而言:查询(select)
对于系统开发而言,三个环境
线网、生产环境:系统开发完毕,客户使用的那个环境
测试环境:公司内部模拟客户现场,搭建而成的环境
开发环境:本地电脑
权限的划分,针对的是生产环境
一、首先我们需要来看一下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来记录权限。
三.相关的sql语句
0.查询用户
SELECT * from user;
1.创建用户并设置登录密码
#MySQL5.7
#命令:create user 用户名 identified by '密码';
#注:identified by会将纯文本密码加密作为散列值存储
create user ls identified by '123456';
#MySQL8
#用户名密码创建需要分开
#命令:create user 用户名;
create user ls;
2.查看用户信息
#MySQL5.7
select host,user,password from user;
#MySQL8
select host,user,authentication_string from user;
3.删除用户(慎用)
#命令:drop user 用户名;
#drop user ls;
4.修改用户密码
4.1 修改密码
#MySQL5.7
#命令:set password for 用户名=password('新密码');
set password for zs=password('123456');
#MySQL8
#ALTER USER 用户 IDENTIFIED WITH mysql_native_password BY '密码';
ALTER USER 'ls'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
4.2 刷新配置
#命令:flush privileges;
#MySQL5.7与MySQL8关于权限操作没有差异性
5.设置权限(Grant)
#语法:grant privileges on databasename.tablename to username@'host';
#给 zs用户 赋予 数据库db_xiaoli