《塗抹MySQL》學習筆記(二)
讀
第四章《管理MySQL庫與表》
第五章《MySQL的權限管理》
總結
1:當配置好 MySQL 數據庫後,發現有幾個默認的庫,他們的意義和作用?(這裏只做簡單了解,之後用到的會分析,現在知道有這麽個東西就好)
- information_schema 記錄數據表/用戶/視圖等信息。
- mysql 用戶權限/幫助/日誌等信息
- performance_schema MySQL性能指標庫
2:數據庫是文件麽?在哪裏放著呢?
mysql.conf 配置中定義了數據存放位置
datadir = /var/lib/mysql
- 之前的數據庫結構
- 在 /var/lib/mysql 隨便建立一個文件夾
- 再看數據庫結構
- 是不是已經成功建立了這個庫呢?
- 這裏只是試驗,直接建立文件夾,在正常環境下,還時應該使用 DDL 語句來建立/刪除 庫。
- 因為直接文件夾建立會有權限/...問題,導致其他問題的失敗。
- 數據表同理。
3:關於數據庫權限的認知小Tip
- MySQL用戶 root 和 linux root 不是一回事,數據庫 root 只不過是初始化時候自己建立的一個用戶而已,隨時可以刪除/修改。
4:數據庫權限邏輯?
- MySQL 總體是使用了白名單機制,明確規定了哪些用戶能做哪些事,但是不能規定哪些用戶不能做那些事。
- MySQL 權限總體邏輯分為下面幾塊。
- 能不能連接?
- 用一句話概括 ’我是誰‘ ’我從哪來‘ ’我從哪去‘
- 對應上面 驗證[用戶名/密碼] -> 驗證來源主機->是否有對應的數據庫權限。
4:如何在數據庫中新建一個用戶?
- 註意
- 用戶名大小不能超過 16 字符。
- 大小寫敏感。
- 語句也很簡單
- CREATE USER 用戶名@‘訪問IP(%或者空代表所有)‘ identified by ‘密碼‘;
- 也可以使用 GRANT 語句創建。
- 設置完成後會自動更新授權表,直接使用密碼登錄即可。
5:那麽,如何設置權限呢?
- 使用 GRANT 設置權限
- GRANT SELECT ON `demo`.`user` TO ‘lihong‘@‘%‘; // 這裏允許lihong用戶查找demo.user表
- 可以使用
- show grants; // 查看自己的全部權限
- 使用 REVOKE 回收權限
- REVOKE SELECT ON `user` FROM ‘lihong‘@‘%‘; // 回收 lihong 用戶的查找權限
- REVOKE ALL PRIVILEGES, GRANT OPTION FROM 用戶名; // 回收該用戶下的所有權限
6:刪除用戶
- 很簡單,前提應該回收所有權限
- drop user 用戶名@‘訪問主機‘;
7:MySQL 中的權限級別
- 在 user 表中的權限是 全局 權限。
- grant select on *.* to lihong; // 設置lihong用戶擁有全局讀權限
《塗抹MySQL》學習筆記(二)