一、权限表
MySQL数据库管理系统是一个多用户数据库管理系统,具有功能强大的访问控制系统,可以为不同用户指定不同权限。
root是默认用户,该用户是超级管理员,拥有所有权限,包括创建用户、删除用户和修改用户密码等管理权限。可以控制整个MySQL服务器。
在实际应用中,为了满足实际项目的需求,可以创建拥有不同权限的普通用户。
MySQL在安装时会自动创建一个名为“mysql”的数据库,其中存储的都是用户权限表。
用户登录以后,MySQL数据库管理系统会根据这些权限表的内容为每个用户赋予相应的权限
user表是MySQL中最重要的一个权限表,用来记录允许连接到服务器的账号信息。需要注意的是,在user表里启用的所有权限都是全局级的,适用于所有数据库。
user表中的字段大致可以分为四类:用户列、权限列、安全列和资源控制列,下面主要介绍这些字段的含义。
用户列存储了用户连接MySQL数据库时需要输入的信息。MySQL用户列下所示
权限列的字段决定了用户的权限,用来描述在全局范围内允许对数据和数据库进行的操作。
权限大致分为两大类,分别是高级管理权限和普通权限。高级管理权限主要对数据库进行管理,例如关闭服务的权限、超级权限和加载用户等;普通权限主要操作数据库,例如查询权限、修改权限等。
安全列主要用来判断用户是否能够登录成功
资源控制列的字段用来限制用户使用的资源
二、用户管理
1、创建用户
create user '用户名'@'主机名' identified by '密码';
create user 'king'@'localhost' identified by 'queen';
2、修改用户
1.修改用户名
rename user '旧用户名'@'主机名' to '新用户名'@'主机名';
rename 'king'@'localhost' to 'king01'@'localhost';
2.修改密码
set password for 'king01'@'localhost'=password('123456');
修改root用户密码:set password=password('123456');
3、删除用户
1.使用drop user语句删除用户
drop user '用户名'@'主机名';
drop user 'king01'@'localhost';
2.使用delete语句删除用户
delete from mysql.user where host='hostname' and user='username';
delete from mysql.user where host='localhost' and user='king';
4、查看所有用户
select user,lost from mysql.user;
三、权限管理
1、查看用户权限
1.通过查看mysql.user表中的数据记录来查看相应的用户权限
select * from mysql.user;
2.也可以使用show grants语句查询用户的权限
show grants usage on *.* for '用户名'@'主机名';
show grants for 'root'@'localhost';
2、授予用户权限
*.*:表示对任何数据库和任何表都可以
数据库名.*:表示对某个数据库中的任何表
数据库名.表名:表示某个数据库中的某个表
grant select,insert on *.* to 'test01'@'localhost';
grant delete on gradem.student to 'test01'@'localhost';
grant update(degree,ctern) on gradem.sc to 'test01'@'localhost'; (只对degree和ctern列有更新的权限)
grant all on *.* to 'test01'@'localhost';
grant insert,delete,update,select on *.* to 'test01'@'localhost';
3、删除用户权限
1.回收所有权限:
revoke all privileges,grant option from 'test01'@'localhost';
revoke all on *.* to 'test01'@'localhost';
2.回收指定权限:
revoke delete,create on db_example.* from 'test01'@'localhost';
四、MySQL数据库备份与恢复
1、备份
1.备份一个数据库
mysqldump -u root -p 123456 db_example>E:\my_db.sql;
2.备份多个数据库
mysqldump -u root -p 123456 --databases db_1 db_2>E:\two_db.sql
3.备份所有数据库
mysqldump -u root -p 123456 --all-databases>E:\my_all.sql;
2、恢复
mysqldump -u root -p 123456 --all-databases<E:\my_all.sql;
mysqldump -u root -p 123456 db_example<E:\de_example.sql;