为什么需要进行用户管理?
数据库本身出现的原因是:
管理数据问题---文件操作数据不方便+数据不安全
文件数据操作不方便---数据处理问题-----
数据不安全---数据库帮我管理---验证身份【账号和密码】
所以需要用户信息验证---多用户分工管理---用户管理
1.登录
mysql -u用户 -h主机信息 -P端口 -p密码
2.查看所有用户信息:
所有用户:select user,host from mysql.user;
当前用户:select user();
3.创建用户
create user 用户名@主机名【identified by 密码】;
纠错:
%---任意主机使用当前用户可以连接当前数据库服务
192.168.4.%------表示192.168.4下面所有的主机可以连接当前数据库服务
4.删除
drop user 用户名@主机信息
5.退出登录
quit exit
6.查看用户所拥有的权限
1)查看自己的权限
show grants;
新用户所拥有的的权限:usage
2)管理员或者拥有查看别人权限的用户查看别人拥有的权限
show grants for 用户名@主机名或者ip
7.查看mysql中所有的权限
show privileges;
8.权限关系
操作的权限命名 数据库中实际管理权限的命名
select select_priv
create user create_user_priv
9.常见的权限
数据操作
insert
select
updata
delete
表格数据库用户结构操作
create创建
create user
create database
create table
create view
drop 删除
alter 修改
show 显示
10.给用户赋予权限【grant】
语法:
grant 权限1,权限2... on 数据库.表名 to 用户名 @主机名或者ip地址【with grant option】
说明:
权限列表:可以同时给用户赋予多个权限,使用逗号分割
数据库名.表名:可以指定哪些数据库或者表可以被当前用户有对应权限操作
所有数据库所有的表都可以操作:*.*
用户名@主机
【with grant option】:需要被赋予权限的用户给其用户赋权
权限最初的拥有者是root管理员,管理员赋予权限的时候没有指定with grant option,不允许用于给其他用户赋权
注意:
mysql数据中心,权限给定不是绝对的,例如如果给了create user,同时开启alter user,drop user
一般使用数据的时候都是不适用默认用户去操作数据,都是创建新的用户按需操作
11.收回【revoke】权限的语法
语法
revoke 权限列表 on 数据库.表名 from 用户名@主机名或者IP地址
收回所有的权限和权限下发
revoke grant option from 用户@主机名
revoke all from 用户名@主机名
12.修改用户的密码
1)自己修改自己的密码 需要自己登陆【推荐】
set password=password("新密码");
2)管理员修改其他用户的密码【推荐】
set password for 用户名@主机名=password("新密码");
3)既可以修改自己的密码也可以修改别人的密码【后期解释】登录
update 用户名 set password=password("新密码") where user='用户名' and host='主机名或者ip'
4)没有登录修改密码【不推荐】
mysqladmin -u用户名 -p旧密码 password 新密码
5)作业---root密码忘记了,怎么办?
A.重新安装--数据库丢失
B.允许跳过登录----修改密码
13.密码管理【管理员】
语法:
alter user 用户名@'localhost' password expire ;强制过渡
alter user 用户名@'localhost' password expire never;不过期
alter user 用户名@'localhost' password expire default;默认策略
alter user 用户名@'localhost' password expire interval 数值 DAY;多少天后过期
14.刷新权限操作
flush privileges;