從入門到精通【MySQL】視圖與用戶權限管理

文章目錄

    • 📕1. 視圖
        • ??1.1 視圖的基本概念
        • ??1.2 試圖的基本操作
            • 🔖1.2.1 創建視圖
            • 🔖1.2.2 使用視圖
            • 🔖1.2.3 修改數據
            • 🔖1.2.4 刪除視圖
        • ??1.3 視圖的優點
    • 📕2. 用戶與權限管理
        • ??2.1 用戶
            • 🔖2.1.1 查看用戶
            • 🔖2.1.2 創建用戶
            • 🔖2.1.3 修改密碼
            • 🔖2.1.4 刪除用戶
        • ??2.2 權限與授權
            • 🔖2.2.1 給用戶授權
            • 🔖2.2.2 回收用戶授權

📕1. 視圖

??1.1 視圖的基本概念

視圖是一個虛擬的表,它是基于一個或多個基本表或其他視圖的查詢結果集。視圖本身不存儲數據,而是通過執行查詢來動態生成數據。用戶可以像操作普通表?樣使用視圖進行查詢、更新和管理。視圖本身并不占用物理存儲空間,它僅僅是一個查詢的邏輯表示,物理上它依賴于基礎表中的數據。

??1.2 試圖的基本操作
🔖1.2.1 創建視圖
create view 列名1,列名2,列名3 as select 查詢語句...

view 是視圖的關鍵字

🔖1.2.2 使用視圖

🌰例如:只查詢用戶的姓名和總分(隱藏學號和各科成績)

# 使?真實表進?查詢
select s.name, sum(sc.score) total from student s, score sc 
where s.id = sc.student_id
group by sc.student_id order by s.id;-- 缺點:可以隨時在select關鍵字后加上學號和各科成績字段,會暴露學生信息,不安全
# 創建視圖
create view v_student_total_points as
select s.id, s.name, sum(sc.score) total from student s, score sc 
where s.id = sc.student_id 
group by s.id order by s.id;-- 使用視圖進行查詢
select * from v_student_total_points;
+-----------+-------+
| name | total |
+-----------+-------+
| 唐三藏 | 469 |
| 孫悟空 | 179.5 |
| 豬悟能 | 200 |
| 沙悟凈 | 218 |
| 宋江 | 118 |
| 武松 | 178 |
| 李逹 | 172 |
+-----------+-------+
-- 只能查詢出姓名和總分,進一步保護了學生的個人信息

🌰例如:視圖和真實表進行表連接查詢

select * from v_student_total_points v, student s where v.id = s.id;-- 視圖本質上是一張虛擬的表,所以可以用視圖與真實表進行表連接查詢
🔖1.2.3 修改數據
  • 通過真實表修改數據,會影響視圖
# 修改唐三藏的JAVA成績為99分update score set score = 99 where student_id = 1 and course_id = 1;# 查詢視圖,發現唐三藏這條記錄已被修改
select * from v_student_socre;
  • 通過視圖修改數據會影響基表
# 更新視圖
update v_student_socre_v1 set score = 99 where score_id = 3;# 是看真實表數據已被修改
select * from score where student_id = 1 and course_id = 5;

注意事項:

1. 修改真實表會影響視圖,修改視圖同樣也會影響真實表

2. 以下視圖不可更新:
-------創建視圖時使用聚合函數的視圖
-------創建視圖時使用 DISTINCT
-------創建視圖時使用 GROUP BY 以及 HAVING子句
-------創建視圖時使用 UNION 或 UNION ALL
-------查詢列表中使用子查詢
-------在FROM子句中引用不可更新視圖

🔖1.2.4 刪除視圖
# 語法
drop view 視圖名;
??1.3 視圖的優點
  1. 簡單性:視圖可以將復雜的查詢封裝成一個簡單的查詢。例如,針對一個復雜的多表連接查詢,可以創建一個視圖,用戶只需查詢視圖而無需了解底層的復雜邏輯。
  2. 安全性:通過視圖,可以隱藏表中的敏感數據。例如,?個系統的用戶表中,可以創建一個不包含密碼列的視圖,普通用戶只能訪問這個視圖,而不能訪問原始表,進一步保證了安全問題。
  3. 邏輯數據獨立性:視圖提供了一種邏輯數據獨立性,即使底層表結構發生變化,只需修改視圖定義,而無需修改依賴視圖的應用程序。確保了應用程序與數據庫的解耦
  4. 重命名列:視圖允許用戶重命名列名,以增強數據可讀性

📕2. 用戶與權限管理

數據庫服務安裝成功后默認有一個root用戶,可以新建和操縱數據庫服務中管理的所有數據庫。在真
實的使用過程中,通常每個應用對應著一個數據庫,我們只希望某個用戶只能操縱和管理當前應用對
應的那個數據庫,而不能操縱和管理其他應用的數據庫,這時就可以添加?個用戶并指定用戶的權限
在這里插入圖片描述
如上圖所示:
root 可以訪問和操縱所有的數據庫:DB1, DB2, DB3, DB4
普通用戶1 只能訪問和操縱數據庫DB1
普通用戶2 只能訪問和操縱數據庫DB3
只讀用戶1 只能訪問數據庫DB3
只讀用戶2 只能訪問數據庫DB4

??2.1 用戶
🔖2.1.1 查看用戶
-- 選擇數據庫
use mysql;-- 查看表結構
desc user;-- 查看用戶表
select * from user;

在這里插入圖片描述
在這里插入圖片描述

host: 允許登錄的主機,相當于白名單,如果是localhost,表示只能從本機登陸
user: 用戶名
*_priv: 用戶擁有的權限,Y表示有權限,N表示沒有權限
authentication_string: 加密后的用戶密碼

🔖2.1.2 創建用戶
create user if  not exists 'user_name'@'host_name' identified by 'auth_string';

user_name: 用戶名,用單引號包裹,區分大小寫
host_name: 主機或IP(段),?單引號包裹
auth_string: 真實密碼,有些密碼策略不允許使用簡單密碼

例如:創建名為zhuxulong 密碼為123456 的賬戶

create user if  not exists 'zhuxulong'@'172.20.109.85' identified by '123456';

在這里插入圖片描述
注意事項:

  • 如果不指定host_name相當于’user_name’@‘%’, %表示所有主機都可以連接到數據庫,強烈建
    議不要這樣設置,因為會導致嚴重的安全問題
  • user_name和host_name分別用單引號包裹,如果寫成’user_name@host_name’, 相當于’user_name@host_name’@‘%’
  • host_name可以通過子網掩碼設置主機范圍
    A: 198.0.0.0 : A段網絡中的任意一臺主機
    B: 198.51.0.0 B段網絡中的任意一臺主機’
    C: 198.51.100.0 C段網絡中的任意一臺主機
    D: 198.51.100.1 :只包含特定IP地址的主機
🔖2.1.3 修改密碼
# 為指定??設置密碼 【推薦】
ALTER USER 'user_name'@'host_name' IDENTIFIED BY 'auth_string';# 為指定??設置密碼
SET PASSWORD FOR 'user_name'@'host_name' = 'auth_string';# 為當前登錄??設置密碼
SET PASSWORD = 'auth_string';
🔖2.1.4 刪除用戶
DROP USER [IF EXISTS] 'user_name'@'host_name'[, ...];
??2.2 權限與授權

MySQL內置支持的權限列表
在這里插入圖片描述

🔖2.2.1 給用戶授權

剛剛創建的用戶沒有任何權限,我們需要手動為新用戶授權.

grant 權限名 on priv_level to 'user_name'@'host_name' [WITH GRANT OPTION]

權限名:根據類型,參考根據列表4.1中的Privilege列

priv_level: * | . | db_name.* | db_name.tbl_name | tbl_name,比如*.*表示所有數據庫下的所有表

‘user_name’@‘host_name’:指定用戶

[WITH GRANT OPTION]:可選,允許用戶將自己的權限授權給其它用戶

示例: 為剛剛創建的zhuxulong用戶授予test數據庫student表的select權限

grant select on  test.student to 'zhuxulong'@'172.20.109.85';
🔖2.2.2 回收用戶授權
revoke 權限名  on 數據庫名.表名 from 'user_name'@'host_name';

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/78020.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/78020.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/78020.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

輸入捕獲模式測頻率

前提工作: PA6、PA0通過跳線相連,PA6測試PA0的輸出頻率 本來只有下列函數,改變占空比 但是我們需要測試頻率,需要動態改變頻率。 void PWM_SetCompare1(uint16_t Compare) {TIM_SetCompare1(TIM2, Compare); //設置CCR1的值 }…

通付盾入選蘇州市網絡和數據安全免費體驗目錄,引領企業安全能力躍升

近日,蘇州市網絡安全主管部門正式發布《蘇州市網絡和數據安全免費體驗產品和服務目錄》,通付盾憑借其在數據安全、區塊鏈、AI領域的創新實踐和前沿技術實力,成功入選該目錄。 作為蘇州市網絡安全技術支撐單位,通付盾將通過 “免費…

AI日報 - 2025年04月25日

🌟 今日概覽(60秒速覽) ▎🤖 AGI突破 | OpenAI o3模型展現行動能力,英國發布RepliBench評估AI自主復制風險,DeepMind CEO擔憂AGI協調挑戰。 模型能力向行動和自主性演進,安全與協調成為焦點。 ▎💼 商業動向…

DeepSeek開源引爆AI Agent革命:應用生態迎來“安卓時刻”

開源低成本:AI應用開發進入“全民時代” 2025年初,中國AI領域迎來里程碑事件——DeepSeek開源模型的橫空出世,迅速在全球開發者社區掀起熱潮。其R1和V3模型以超低API成本(僅為GPT-4o的2%-10%)和本地化部署能力&#x…

CDGP|大模型賦能數據治理:實踐案例與深度剖析

隨著大數據技術的飛速發展,數據規模呈爆炸式增長,數據來源也日趨多樣化。在這個背景下,大模型,即具有數十億甚至上百億參數的深度學習模型,逐漸成為數據處理和分析的重要工具。大模型具備處理多任務、理解復雜語言模式…

Ubuntu 一站式部署 RabbitMQ 4 并“徹底”遷移數據目錄的終極實踐

1 安裝前準備 sudo apt update -y sudo apt install -y curl gnupg apt-transport-https lsb-release jq若計劃將數據放到新磁盤(如 /dev/nvme0n1p1): sudo mkfs.xfs /dev/nvme0n1p1 sudo mkdir /data echo /dev/nvme0n1p1 /data xfs defau…

5.2.3 WPF 中 XAML 文件 Converter 使用介紹

Converter(轉換器)在 WPF 數據綁定中扮演著重要角色,用于在源數據和目標屬性之間進行值轉換 舉例來說:我想用一個bool量來控制一個背景,為true時,顯示紅色;為false時背景用默認顏色。因此 Backg…

MySQL 8 自動安裝腳本(CentOS-7 系統)

文章目錄 一、MySQL 8 自動安裝腳本腳本說明📌 使用腳本前提條件1. 操作系統2. 用戶權限3. 網絡要求 📌 腳本的主要功能1. 環境檢查2. MySQL 自動安裝3. 自動配置 MySQL4. 防火墻配置5. 驗證與輸出 📌 適用場景 二、執行sh腳本1. 給予腳本執行…

Python跨平臺桌面應用程序開發

引言 在當今軟件開發領域,跨平臺應用程序開發變得越來越重要。用戶希望無論使用Windows、macOS還是Linux系統,都能獲得一致的應用體驗。Python作為一種高級編程語言,憑借其簡潔的語法和豐富的庫生態系統,成為了跨平臺桌面應用程序…

使用 Docker 安裝 SQL Server 2022 并解決 Navicat 連接問題

在使用 Docker 安裝 SQL Server 時,很多人可能遇到過無法通過 Navicat 等數據庫客戶端連接到容器的情況。尤其是嘗試使用 mcr.microsoft.com/mssql/server:2022-latest 鏡像時,可能會發現 Navicat一直轉圈,無法連接到數據庫。在這篇博客中&am…

2025最新軟件測試面試八股文(答案+文檔+視頻講解)

1、你的測試職業發展是什么? 測試經驗越多,測試能力越高。所以我的職業發展是需要時間積累的,一步步向著高級測試工程師奔去。而且我也有初步的職業規劃,前3年積累測試經驗,按如何做好測試工程師的要點去要求自己&…

理解計算機系統_網絡編程(2)

前言 以<深入理解計算機系統>(以下稱“本書”)內容為基礎&#xff0c;對程序的整個過程進行梳理。本書內容對整個計算機系統做了系統性導引,每部分內容都是單獨的一門課.學習深度根據自己需要來定 引入 接續上一篇理解計算機系統_網絡編程(1)-CSDN博客 國際互聯…

【盈達科技】GEO(生成式引擎優化)底層邏輯

??一、GEO的現狀?? ??技術快速迭代?? 生成式AI&#xff08;如ChatGPT、Claude、Google SGE&#xff09;正在成為用戶獲取信息的核心入口&#xff0c;傳統搜索引擎的流量被分流。主流平臺如Google推出“生成式搜索體驗&#xff08;SGE&#xff09;”&#xff0c;Bing整合…

VS Code 智能代理模式:重塑開發體驗

在編程領域&#xff0c;效率與精準度無疑是開發者們永恒的追求。而如今&#xff0c;VS Code 推出的智能代理模式&#xff08;Agent Mode&#xff09;&#xff0c;正以前所未有的方式&#xff0c;徹底顛覆了傳統開發流程&#xff0c;為程序員們帶來了一場前所未有的效率革命。本…

【回眸】Aurix TC397 IST 以太網 UDP 相關開發

前言 關于移植IST功能至 Infineon TC397上主要涉及到UDP發送報文及接收。IST是安全診斷相關的工作 Nvidia IST介紹 Orin系列芯片會提供一種機制來檢測由系統內測&#xff08;IST&#xff09;所產生的永久的故障&#xff0c;IST 應該在 Orin-x 功能安全系統中使用期間被啟動。…

Mediamtx與FFmpeg遠程與本地推拉流使用

1.本地推拉流 啟服 推流 ffmpeg -re -stream_loop -1 -i ./DJI_0463.MP4 -s 1280x720 -an -c:v h264 -b:v 2000k -maxrate 2500k -minrate 1500k -bufsize 3000k -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/stream 拉流 ffplay -rtsp_transport tcp rtsp://43.136.…

使用QML Tumbler 實現時間日期選擇器

目錄 引言相關閱讀項目結構示例實現與代碼解析示例一&#xff1a;時間選擇器&#xff08;TimePicker&#xff09;示例二&#xff1a;日期時間選擇器&#xff08;DateTimePicker&#xff09; 主窗口整合運行效果總結下載鏈接 引言 在現代應用程序開發中&#xff0c;時間與日期選…

R語言中的常用內置函數

常用的數值函數 常用的字符函數 與概率分布相關的函數 有用的統計函數 數據來源:《數據挖掘與數據分析&#xff1a;基于R語言》王陽 2024年1月出版

org.springframework.core.env.PropertiesPropertySource 類詳解

org.springframework.core.env.PropertiesPropertySource 類詳解 1. 基本概述 類路徑: org.springframework.core.env.PropertiesPropertySource繼承關系: 繼承自 PropertySource<Properties>&#xff0c;實現 PropertySource 接口。作用: 將 Java Properties 對象&…

2025-04-22 李沐深度學習5 —— 線性回歸

文章目錄 1 案例介紹1.1 應用場景&#xff1a;美國房價預測1.2 核心假設1.3 線性回歸與神經網絡的關系1.4 平方損失&#xff08;L2 Loss&#xff09;1.5 訓練模型&#xff1a;最小化損失 2 基礎優化算法2.1 梯度下降2.2 小批量隨機梯度下降&#xff08;Mini-batch SGD&#xff…