MySQL权限表

mysql.user//全局
用户字段
权限字段
安全字段
资源控制字段
mysqk.db//库局
用户字段
权限字段
mysql.tables_priv//表局
mysql.columns_priv//列局

MySQL用户管理

1.登录和退出MySQL

示例
mysql -h192.168.159.138 -P 3306 -u root -p 密码 mysql -e ‘select user,host from user’
-h 指定主机名 [默认为localhost]
-P MySQL服务端口 [默认3306]
-u 指定用户名 [默认root]
-p 登录密码 [默认空密码]
此处MySQL为指定登录的数据库
-e 接SQL语句

2.创建用户

方法一: CREATE USER 语句创建
CREATE USER user1@'localhost' IDENTIFIED BY ‘密码’;

方法二、GRANT语句创建
GRANT ALL ON *.* TO ‘user3’@'localhost' IDENTIFIED BY '密码‘;//ALL 所有权限 *第一个所有库 *第二个所有表
FLUSH PRIVILEGES;

注意:
若是全局授权可以在mysql.user表中查看
若是库局授权可以在mysql.db表中查看

3.删除用户

方法一;DROP USER语句删除
DROP USER 'user1’@‘localhost’;

方法二、 DELECT语句删除
DELECT FROM mysql.user
WHERE user='user3' AND host='localhost';
FLUSH PRIVILEGES;

四、修改用户密码

===root修改自己密码//有mariadb的情况下使用绝对路径修改密码/usr/local/mysql/bin/mysqladmin
方法一、
#mysqladmin -uroot -p'旧密码' password ‘新密码’;

方法二、
update mysql.user set authentication_string=password('新密码') where user='root' and host='localhost';
flush privileges;

方法三、
set password=password('新密码');
flus privileges;

===root修改其他用户密码
方法一、
set password for user3@'localhost'=password('新密码');
flush privileges;

方法二、
update mysql.user set authentication_string=password('新密码') where user3='root' and host='localhost';
flush privileges;

===普通用户修改自己密码
set password=password('新密码');
flush privileges;

MySQL权限管理

1.语法格式

grant 权限列表 on 库名.表名 to ‘用户名’@‘客户端主机’ [identified by ‘密码’ with option参数];//with grant option
==权限列表 all 所有权限,不包括授权权限
select,update

==数据库.表名 *.* 所有库,所有表
web.*
web.stu_info
select(col1),insert(col1,col2) on mydb.mytb1


==客户端 % 所有主机
192.168.2.%
192.168.159.136
localhost

2.回收权限revoke

语法
revoke 权限列表 on 数据库名 from 用户名@‘客户端主机’;

示例:
revoke delect on *.* from 'admin1'@‘%’; 回收部分权限
revoke all privileges on *.* from ‘admin2’@'%'; 回收全部权限
revoke all privileges,grant option on *.* from ‘admin2'@'%';

3.删除用户

//MySQL5.6版本以前删除用户要先回收权限

5.6 revoke all privileges drop user
5.7 drop user