回顧今天的資料庫實驗?(ο???ο)?
先新建一個測驗資料庫

再創建個表填些資料

一、查看用戶
查看用戶并沒有直接的SQL陳述句,而是進入 mysql 資料庫的 user 表(這個mysql庫和user表都是一開始就有的),直接用 select * from user;來查看有什么用戶
use mysql;
select * from user;
二、創建用戶
create user 'user_name'@'host' identified by 'password';
- user_name:要創建用戶的名字,
- host:表示要這個新創建的用戶允許從哪臺機登陸,如果只允許從本機登陸,則 填 ‘localhost’ ,如果允許從遠程登陸,則填 ‘%’
- 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';
- privileges:表示要授予什么權力,例如可以有 select , insert ,delete,update等,如果要授予全部權力,則填 ALL
- databasename.tablename:表示用戶的權限能用在哪個庫的哪個表中,如果想要用戶的權限很作用于所有的資料庫所有的表,則填 " *.* ",* 是一個通配符,表示全部,
- ’username‘@‘host’:表示授權給哪個用戶,username 的引號可以不加哦,但 host 必須加,
為賬戶分配不同的權限
-- 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;
權限串列:
- ALTER: 修改表和索引,
- CREATE: 創建資料庫和表,
- DELETE: 洗掉表中已有的記錄,
- DROP: 拋棄(洗掉)資料庫和表,
- INDEX: 創建或拋棄索引,
- INSERT: 向表中插入新行,
- REFERENCE: 未用,
- SELECT: 檢索表中的記錄,
- UPDATE: 修改現存表記錄,
- FILE: 讀或寫服務器上的檔案,
- PROCESS: 查看服務器中執行的執行緒資訊或殺死執行緒,
- RELOAD: 多載授權表或清空日志、主機快取或表快取,
- SHUTDOWN: 關閉服務器,
- ALL: 所有權限,ALL PRIVILEGES同義詞,
- USAGE: 特殊的 "無權限" 權限.
可根據上面的權限欄位 為用戶分配相應的權限
注意:
用以上命令授權的用戶不能給其他用戶授權,如果想這個用戶能夠給其他用戶授權,就要在后面加上 WITH GRANT OPTION 如:
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 權限

測驗臺,這下就不行了

最后就試一試洗掉這個賬戶


成功,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/234806.html
標籤:其他
