DCL:Data Control Language
1、查看当前用户权限
show grants;
2、创建用户
create user 'user_name'@'host' identified by 'password';
3、查看指定用户的权限
show grant for 'user_name'@'host';
4、授权
*.*:第一个*指数据库,第二个*指数据库中的表,按自己需求给不同用户分配不同的权限,*.*代表所有的库以及所有库的表
select:查询权限
insert:插入权限
update:修改权限
delete:删除权限
all privileges:所有的权限
%:一般结合主机host来使用,用来模糊指定那些主机具备远程登录的权限,可根据自己需求进行指定。
(1)给指定用户授权
grant select on database_name.* to 'user_name'@'host';
比如给用户user赋予student库中所有表的查询权限:
grant select on student.* to 'user'@'10.8.153.%';
注意:这里的host使用的模糊匹配,意思是这个局域网内的所有主机都能访问或者登录自己的MySQL。
(2)创建用户并授权
grant insert on database_name.table_name to 'user_name'@'host' identified by 'password';
(3)刷新权限
flush privileges;
当权限不起作用的时候可以使用。
5、取消或者收回权限
格式:revoke 权限 on *.* from 'user_name'@'host';
(1)收回指定用户的指定权限
revoke select on databse_name.table_name from 'user_name'@'host';
(2)收回指定用户的所有权限
revoke all privileges on database_name.table_name from 'user_name'@'host';
举个例子:
revoke all privileges on student.* from 'user'@'10.8.153.%';
6、删除用户
格式:drop user 'user_name'@'host';
比如删除test用户:
drop user 'test'@'10.8.153.%';
7、远程连接MySQL
mysql -h host -u user_name -p
注意:Linux下要修改主机绑定,修改/etc/mysql/mysql.conf.d/mysqld.cnf配置文件中的bind-address,如下: