回顧今天的數據庫實驗⊂(ο・㉨・ο)⊃mysql
先新建一個測試數據庫sql
再建立個表填些數據數據庫
查看用戶並無直接的SQL語句,而是進入 mysql 數據庫的 user 表(這個mysql庫和user表都是一開始就有的),直接用 select * from user;來查看有什麼用戶緩存
use mysql; select * from user;
create user 'user_name'@'host' identified by 'password';
建立不一樣限制的帳戶服務器
-- 建立帳戶,"%"是無登陸限制的,「123」是密碼 create user 'liwker'@'%' identified by '123'; -- "localhost"是限制爲本地登陸 create user 'liwker'@'localhost' identified by '123'; -- 這個是限制 ip 爲 10.11.20.30 的主機訪問 create user 'liwker'@'10.11.20.30' identified by '123';
grant privileges on databasename.tablename to 'username'@'host';
爲帳戶分配不一樣的權限ide
-- Liwker庫的student表的 只讀權限 分配給 liwker 帳戶 grant select on Liwker.student to liwker@'%'; -- Liwker庫(全部表)的 多個權限 分配給 liwker 帳戶 grant select,insert,delete,update on Liwker.* to liwker@'%'; -- Liwker庫的 全部權限 分配給 liwker 帳戶 grant all on Liwker.* to liwker@'%'; -- 全部庫的 全部權限 分配給 liwker 帳戶 grant all on *.* to liwker@'%'; -- 刷新權限 flush privileges;
權限列表:測試
可根據上面的權限字段 爲用戶分配相應的權限線程
注意:日誌
用以上命令受權的用戶不能給其餘用戶受權,若是想這個用戶可以給其餘用戶受權,就要在後面加上 WITH GRANT OPTION 如:code
grant all on *.* to 'liwker'@'%' with grant option;
補充 爲用戶建立數據庫:
create database basename DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
drop user 'username'@'host';
set password for 'username'@'host' = password('newpassword'); -- 若是是設置當前用戶的密碼 set password = password('newpassword');
-- 回收權限,格式和分配差很少,grant -> revoke , to -> from revoke select on Liwker.student from liwker@'%';
但注意:
若授予權利是這樣寫:grant select on *.* to liwker@'%';
則用 revoke select on Liwker.student to liwker@'%';
是不能撤銷用戶 liwker 對 Liwker.student 中的 SELECT 權利的。
反過來 grant select on Liwker.student to liwker@'%';
授予權力
用 revoke select on *.* to liwker@'%';
也是不能用來撤銷用戶 liwker 對 Liwker 庫的 student 表的SELECT 權利的
先建立一個新帳戶
再給他分配一些操做權限
接下來,就打開cmd用新帳戶測試一下
先登陸這個帳戶
能夠看到除了默認數據庫,只能看到分配給的數據庫和表
用分配給的不一樣SQL語句測試一下
再試一試沒權限的
這時,咱們能夠在管理臺給他新增這個權限
在測試臺從新試一試剛剛的 delete
再試一試回收權限,管理臺回收 delete 權限
測試臺,這下就不行了
最後就試一試刪除這個帳戶
成功。