資料庫的資料定義(針對資料庫或表)、資料操作和資料查詢(針對表中資料)、資料控制(設定對資料庫的通路權限)、事務控制(确定或者取消資料操作)
1,先補充一下,資料庫對象:
資料庫對象:組成資料庫,包括表(資料庫最基本的存儲機關)、圖表(資料庫中表與表之間的關系)預設值(資料庫中表的列值缺少時的規定表示)、索引(友善查找到表中資料,還可以避免資料的重複)、使用者(有權限通路資料庫,需要登入賬号和密碼(沒有登入賬号和密碼就采取系統預設))、存儲過程、規則、觸發器等
2,SQL語言分為五大類:
資料定義(DDL):(操作的是資料庫或表)
Create、Alter、Drop 建立資料庫(或表)、删除資料庫(或表)、修改資料庫(或表)
ps: 檢視資料庫或者表 show
資料查詢和操作(DQL、DML):(操作的是資料庫表中的對象—操作的是資料庫的資料)
DML(資料操縱語言) - Insert、Delete、Update這些語句需要Commit才能送出。(Command,更改一個對象或整個系統的狀态。)
DQL(資料查詢語言) - Select 查詢語句不存在送出問題。(Query,傳回結果但并不會改變對象的狀态。)
ps:檢視表中屬性:select
資料控制(DCL):(授權與撤權)
授什麼權 on 哪個資料庫.哪個表 to 哪個使用者 (Grant 授權)
撤什麼權 on 哪個資料庫.哪個表 from 哪個使用者 (Revoke撤權)
事務控制(DTL):(是送出或撤銷進行的資料操作)。
COMMIT 是送出你的DML資料操作.
ROLLBACK 是取消你的DML資料操作.
事務控制的作用就是防止資料操作發生了誤操作,讓操作者再次确認要進行該操作。
3,資料控制(DCL)-- 包括了 GRANT、REVOKE
用來設定資料庫管理系統中的使用者對于系統中的資料庫或者存儲在資料庫中的表的通路權限。(管理資料庫,包括管理權限和資料更改)
ps:因為公司有專門的資料庫管理者,是以開發員很少使用!用來管理系統中的對象權限時使用。
GRANT授權
grant 文法:(grant 權限 on 資料庫.對象(這裡指的是表) to 使用者)
文法舉例1:
GRANT 權限名1,權限名2, .... on 資料庫名.對象名 TO ‘使用者名’@’允許其登入的位址’ identified by ‘密碼’;
文法舉例2:
GRANT 權限1, … , 權限n ON 資料庫.* TO 使用者名@IP位址
ps:
一,所有 ALL 或 *
所有權限:All privileges (privileges可以省略)
所有資料庫:*
所有資料庫對象(這裡一般說的是表):*
二,MySQL GRANT 權限作用權限
1, 作用在整個MySQL 伺服器上 GRANT ALL ON *.* TO 使用者名@IP位址
2, 作用在單個資料庫上 GRANT ALL ON 某個資料庫名.* TO 使用者名@IP位址
3, 作用在單個資料庫的單個資料表上
GRANT ALL ON 某個資料庫名.某張表 TO 使用者名@IP位址
4, 作用在表中的某一列上
5, 作用在存儲過程、函數上
三、檢視 MySQL 使用者權限
檢視目前使用者(自己)權限:
show grants;
檢視其他 MySQL 使用者權限:
show grants for zhangkh@localhost;
REVOKE 撤權
與GRANT 差不多,TO 改成 FROM
注意:對于授權GRANT、撤權REVOKE 某個使用者,需要等到該使用者重新連接配接資料庫後才能生效。
參考了:https://blog.csdn.net/wangnanwlw/article/details/50410813 《 grant 權限 on 資料庫對象 to 使用者@'IP'》