1. 程式人生 > >《塗抹MySQL》學習筆記(二)

《塗抹MySQL》學習筆記(二)

from 學習筆記 但是 那些事 for 自動 roo 哪裏 建立

  第四章《管理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》學習筆記(二)