1. 程式人生 > >MySQL 筆記7 -- 許可權操作與檢視

MySQL 筆記7 -- 許可權操作與檢視

MySQL 筆記7 – 許可權操作與檢視


MySQL 系列筆記是筆者學習、實踐MySQL資料庫的筆記

課程連結: MySQL 資料庫基礎入門教程
參考文件:
MySQL 官方文件
SQL 教程


一、許可權操作


1、許可權

  • 限制使用者對資料庫進行的操作型別
  • root 管理員擁有全部許可權,可以為每個使用者設定不同的許可權
  • 在MySQL中,可以設定全域性許可權,指定資料庫許可權,指定表許可權,指定欄位許可權

2、許可權類別

許可權類別 說明
CREATE 建立資料庫、表或索引許可權
DROP 除資料庫或表許可權
ALTER ALTER更改表,比如新增欄位、索引等
DELETE 刪除資料許可權
INDEX 索引許可權
INSERT 插入許可權
SELECT 查詢許可權
UPDATE 更新許可權
CREATE VIEW 建立檢視許可權
EXECUTE 執行儲存過程許可權

3、許可權命令

功能 命令
建立使用者 CREATE USER ‘使用者名稱’@‘localhost’ IDENTIFIED BY ‘密碼’;
刪除使用者 DROP USER 使用者名稱稱
分配許可權 GRANT 許可權 (columns) ON 資料庫物件 TO 使用者 IDENTIFIED BY “密碼” WITH GRANT OPTION
重新整理配置資訊 flush privileges;
檢視許可權 show grants
檢視指定使用者的許可權 show grants for [email protected]
刪除許可權 REVOKE 許可權 ON 資料庫物件 FROM 使用者;
  • WITH GRANT OPTION:能向下繼續授予許可權
  • 資料庫物件:所有資料庫:.;某個資料庫:資料庫名.*;某個表:資料庫名.表名

二、檢視


1、檢視

  • 檢視是一個虛擬表(引用基表,並沒有真實的資料),其內容由查詢定義
  • 同真實的表一樣,檢視包含一系列帶有名稱的列和行資料
  • 行和列資料來自定義檢視的查詢所引用的表,並且在引用檢視時動態生成
  • 簡單的來說檢視是由select結果組成的表

2、檢視的特性

  • 檢視是對若干張基本表的引用,一張虛表,查詢語句執行的結果
  • 不儲存具體的資料(基本表資料發生了改變,檢視也會跟著改變)
  • 可以跟基本表一樣,進行增刪改查操作(增刪改操作有條件限制)

3、檢視的作用

  • 安全性:建立一個檢視,定義好該檢視所操作的資料,之後將使用者許可權與檢視繫結。grant語句可以針對檢視進行授予許可權。
  • 查詢效能提高
  • 提高了資料的獨立性

3、檢視命令

建立檢視:

CREATE [ALGORITHM]={UNDEFINED|MERGE|TEMPTABLE}]
               VIEW 檢視名 [(屬性清單)]
               AS SELECT 語句
               [WITH [CASCADED|LOCAL] CHECK OPTION];
  • ALGORITHM 引數
    • merge:處理方式替換式,可以進行更新真實表中的資料。將檢視公式替換後,當成一個整體sql進行處理了
    • TEMPTABLE:具化式,由於資料儲存在臨時表(存在記憶體)中,所以不可以進行更新操作。先處理檢視結果,後處理對檢視的查詢需求
    • UNDEFINED:mysql更傾向於選擇替換方式,因為它更加有效
  • WITH CHECK OPTION:更新資料時不能插入或更新不符合檢視限制條件的記錄
  • LOCAL和CASCADED:決定了檢查測試的範圍,預設值為CASCADED

修改檢視:

drop view 檢視名稱;

4、檢視不可更新部分

  • 聚合函式;
  • DISTINCT 關鍵字;
  • GROUP BY子句;
  • HAVING 子句;
  • UNION 運算子;
  • FROM 子句中包含多個表;
  • SELECT 語句中引用了不可更新檢視;
  • 只要檢視當中的資料不是來自於基表,就不能夠直接修改

GOOD LUCK!