MySQL的权限控制(DCL)

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,如下:

猜你喜欢

转载自blog.csdn.net/ryuhfxz/article/details/83821924