MySQL 笔记7 -- 权限操作与视图
生活随笔
收集整理的這篇文章主要介紹了
MySQL 笔记7 -- 权限操作与视图
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
MySQL 筆記7 – 權(quán)限操作與視圖
MySQL 系列筆記是筆者學(xué)習(xí)、實(shí)踐MySQL數(shù)據(jù)庫(kù)的筆記
課程鏈接: MySQL 數(shù)據(jù)庫(kù)基礎(chǔ)入門教程
參考文檔:
MySQL 官方文檔
SQL 教程
一、權(quán)限操作
1、權(quán)限
- 限制用戶對(duì)數(shù)據(jù)庫(kù)進(jìn)行的操作類型
- root 管理員擁有全部權(quán)限,可以為每個(gè)用戶設(shè)置不同的權(quán)限
- 在MySQL中,可以設(shè)置全局權(quán)限,指定數(shù)據(jù)庫(kù)權(quán)限,指定表權(quán)限,指定字段權(quán)限
2、權(quán)限類別
| CREATE | 創(chuàng)建數(shù)據(jù)庫(kù)、表或索引權(quán)限 |
| DROP | 刪除數(shù)據(jù)庫(kù)或表權(quán)限 |
| ALTER | ALTER更改表,比如添加字段、索引等 |
| DELETE | 刪除數(shù)據(jù)權(quán)限 |
| INDEX | 索引權(quán)限 |
| INSERT | 插入權(quán)限 |
| SELECT | 查詢權(quán)限 |
| UPDATE | 更新權(quán)限 |
| CREATE VIEW | 創(chuàng)建視圖權(quán)限 |
| EXECUTE | 執(zhí)行存儲(chǔ)過程權(quán)限 |
3、權(quán)限命令
| 創(chuàng)建用戶 | CREATE USER ‘用戶名’@‘localhost’ IDENTIFIED BY ‘密碼’; |
| 刪除用戶 | DROP USER 用戶名稱 |
| 分配權(quán)限 | GRANT 權(quán)限 (columns) ON 數(shù)據(jù)庫(kù)對(duì)象 TO 用戶 IDENTIFIED BY “密碼” WITH GRANT OPTION |
| 刷新配置信息 | flush privileges; |
| 查看權(quán)限 | show grants |
| 查看指定用戶的權(quán)限 | show grants for root@localhost |
| 刪除權(quán)限 | REVOKE 權(quán)限 ON 數(shù)據(jù)庫(kù)對(duì)象 FROM 用戶; |
- WITH GRANT OPTION:能向下繼續(xù)授予權(quán)限
- 數(shù)據(jù)庫(kù)對(duì)象:所有數(shù)據(jù)庫(kù):.;某個(gè)數(shù)據(jù)庫(kù):數(shù)據(jù)庫(kù)名.*;某個(gè)表:數(shù)據(jù)庫(kù)名.表名
二、視圖
1、視圖
- 視圖是一個(gè)虛擬表(引用基表,并沒有真實(shí)的數(shù)據(jù)),其內(nèi)容由查詢定義
- 同真實(shí)的表一樣,視圖包含一系列帶有名稱的列和行數(shù)據(jù)
- 行和列數(shù)據(jù)來自定義視圖的查詢所引用的表,并且在引用視圖時(shí)動(dòng)態(tài)生成
- 簡(jiǎn)單的來說視圖是由select結(jié)果組成的表
2、視圖的特性
- 視圖是對(duì)若干張基本表的引用,一張?zhí)摫?#xff0c;查詢語句執(zhí)行的結(jié)果
- 不存儲(chǔ)具體的數(shù)據(jù)(基本表數(shù)據(jù)發(fā)生了改變,視圖也會(huì)跟著改變)
- 可以跟基本表一樣,進(jìn)行增刪改查操作(增刪改操作有條件限制)
3、視圖的作用
- 安全性:創(chuàng)建一個(gè)視圖,定義好該視圖所操作的數(shù)據(jù),之后將用戶權(quán)限與視圖綁定。grant語句可以針對(duì)視圖進(jìn)行授予權(quán)限。
- 查詢性能提高
- 提高了數(shù)據(jù)的獨(dú)立性
3、視圖命令
創(chuàng)建視圖:
CREATE [ALGORITHM]={UNDEFINED|MERGE|TEMPTABLE}]VIEW 視圖名 [(屬性清單)]AS SELECT 語句[WITH [CASCADED|LOCAL] CHECK OPTION];- ALGORITHM 參數(shù)
- merge:處理方式替換式,可以進(jìn)行更新真實(shí)表中的數(shù)據(jù)。將視圖公式替換后,當(dāng)成一個(gè)整體sql進(jìn)行處理了
- TEMPTABLE:具化式,由于數(shù)據(jù)存儲(chǔ)在臨時(shí)表(存在內(nèi)存)中,所以不可以進(jìn)行更新操作。先處理視圖結(jié)果,后處理對(duì)視圖的查詢需求
- UNDEFINED:mysql更傾向于選擇替換方式,因?yàn)樗佑行?/li>
- WITH CHECK OPTION:更新數(shù)據(jù)時(shí)不能插入或更新不符合視圖限制條件的記錄
- LOCAL和CASCADED:決定了檢查測(cè)試的范圍,默認(rèn)值為CASCADED
修改視圖:
drop view 視圖名稱;4、視圖不可更新部分
- 聚合函數(shù);
- DISTINCT 關(guān)鍵字;
- GROUP BY子句;
- HAVING 子句;
- UNION 運(yùn)算符;
- FROM 子句中包含多個(gè)表;
- SELECT 語句中引用了不可更新視圖;
- 只要視圖當(dāng)中的數(shù)據(jù)不是來自于基表,就不能夠直接修改
GOOD LUCK!
總結(jié)
以上是生活随笔為你收集整理的MySQL 笔记7 -- 权限操作与视图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 制作 小 linux 教程,【NanoP
- 下一篇: SpringMVC拦截器(interce