1. 程式人生 > >MySQL的許可權控制(DCL)

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