一.創建新用戶並限制ip網段登錄
1.1創建語法:
create user 'username'@'host' identifified by 'password';
username:你將創建的用戶名
host:指定該用戶在哪個主機上可以登陸,如果是本地用戶可用localhost,如果想讓該用戶可以從任意遠程主機 登
陸,可以使用通配符%
password:該用戶的登陸密碼,密碼可以爲空,如果爲空則該用戶可以不需要密碼登陸服務器
例1:
創建一個pig用戶,並指定登錄密碼:123456,可以在任何一臺遠程主機都可以登錄
create user 'pig'@'%' identified by '123456';
例2:
創建一個pig用戶,並指定登錄密碼:爲空,指定在120網段的機器登錄
create user 'pig'@'192.%.%.%' identified by '';
注意:當設置用戶爲網段登錄的時候,本機登錄必須加-h,因爲網段登錄他的host是120.%.%.%這種,而本機是localhost,所以本機也必須加上ip地址,不然會報錯,錯誤如下:
正確的如下所示:
1.2刪除用戶語法:
drop user 'username'@'host';
drop user 'pig'@'%';
另外一種:
delete from mysql.user where user='pig';
二.用戶庫表權限授權與回收
2.1用戶授權語法:
授權語法有兩種,可以對已經存在的用戶授權,也可以直接新建用戶並授權,語法如下:
grant 權限1,權限2..... on 數據庫對象 to '用戶'
grant 權限1,權限2..... on 數據庫對象 to '用戶'@'host' identified by 'password';
例1:
對現有用戶進行授權:對現有用戶pig授予所有庫所有表所有權限。
grant all privileges on *.* to 'pig';
all privileges:代表所有權限
*.* :代表所有庫所有表,點前面的是庫名,點後面的是表名
例2:
對沒有的用戶進行授權:創建一個新用戶dog授予XD庫的所有權限,登錄密碼123456,任何一臺主機登錄
grant all privileges on XD.* to 'dog'@'%' identified by '123456';
例3:
對沒有的用戶進行授權:創建一個新用戶cat授予XD庫的employee表 查與修改權限,登錄密碼123456,任何一臺主機登 錄
grant select,update on XD.employee to 'cat'@'%' identified by '123456'
例4:
對沒有的用戶進行授權:對用戶cat授予XD庫的employee表insert 權限,登錄密碼123456,任何一臺主機登錄
grant insert on XD.employee to 'cat'@'%' identified by '123456';
例5:
對developer用戶賦予所有tmp_開頭的數據庫的所有表的權限
grant all privileges on `tmp_%`.* to 'developer';
2.2權限回收語法:
revoke 權限1,權限2..... on 數據庫對象 from '用戶'@'host';
例1:
回收pig用戶的所有權限(注意:並沒有回收它的登錄權限)
revoke all privileges on *.* from 'pig' @ '%'; flush privileges;
例2:
回收pig用戶的所有權限(並回收它的登錄權限)
delete from mysql.user where user='pig'; flush privileges;
例3:
回收cat用戶對XD庫的employee的查與修改權限
revoke select,update on XD.employee from 'cat'@'%'; flush privileges;
2.3查看某個用戶權限語法:
select * from mysql.user where user='pig'\G
show grants for 'username'@'host'
例1:查看pig用戶的權限:
select user,host from mysql.user------->查看當前mysql數據庫有多少用戶以及能在那些網段登錄
USAGE:無權限的意思
例2:查看root用戶的權限:
ALL PRIVILEGES:表示所有權限
WITH GRANT OPTION:表示這個用戶擁有grant權限,即可以對其他用戶授權