MySQL用戶管理(15)

文章目錄

  • 前言
  • 一、用戶
    • 用戶信息
    • 創建用戶
    • 修改密碼
    • 刪除用戶
  • 二、數據庫的權限
    • MySQL中的權限
    • 給用戶授權
    • 回收權限
  • 總結


前言

??其實與 Linux 操作系統類似,MySQL 中也有 超級用戶普通用戶 之分

??如果一個用戶只需要訪問 MySQL 中的某一個數據庫,甚至數據庫中的某一個表,那么可以為其創建一個普通用戶,并為該用戶賦予對應的權限,而不讓該用戶看到數據庫中的其他數據,防止該用戶對其他數據進行誤操作,由此就有了我們該篇的講解,即 用戶管理!


一、用戶

用戶信息

??MySQL 當中默認有一個名為 mysql 的數據庫

在這里插入圖片描述

??查看該數據庫中的表,可以看到其中有一個名為 user 的表

在這里插入圖片描述

??user 表中存儲的就是 MySQL 中用戶相關的信息

在這里插入圖片描述
部分的字段說明:

  • user: 表示該用戶的用戶名。
  • host: 表示該用戶可以從哪個主機登錄,localhost表示只能從本機登錄,%表示可以從任意地方登錄。
  • authentication_string: 表示該用戶的密碼經過password函數加密后的值。
  • xxx_priv: 表示該用戶是否擁有對應權限。

??我們還可以只選擇部分字段進行展示:
在這里插入圖片描述
??同時我們注意到因為 user 表中的主鍵是復合主鍵,由表中的 user 列和 host 列共同承擔,所以 MySQL 中可以存在同名的用戶,只要這些同名用戶對應的登錄主機不同即可

在這里插入圖片描述

創建用戶

??創建用戶的 SQL 如下:

CREATE USER '用戶名'@'登錄主機' IDENTIFIED BY '密碼';

??比如下面創建一個用戶名為 HQ ,并且可以從任意地方登錄的用戶

在這里插入圖片描述
??創建用戶成功后,該用戶的相關信息也就被寫入到剛才的 user 表中了

在這里插入圖片描述
??這時便可以用新創建的普通用戶來連接 MySQL 服務器了

在這里插入圖片描述
??此外,由于我們創建的這個用戶可以從任意地方登錄,因此如果你在 Windows 下也安裝了 MySQL ,那么就可以在 Windows 的 cmd 窗口進行遠程登錄

在這里插入圖片描述

  • 創建用戶的SQL當中包含用戶的密碼,因此該SQL不會被歷史記錄下來,所以不能通過上下鍵進行追溯。
  • MySQL本身的認證級別比較高,因此創建用戶時設置的密碼不能太簡單,否則會出現報錯,這時你可以選擇將密碼設置復雜一些,也可以對密碼相關的設置進行調整。

??通過show命令查看全局變量,可以看到密碼設置相關的要求
在這里插入圖片描述

修改密碼

??你可能會看到有些博主說 set password = password(‘你的密碼’); 事實上在 MySQL 5.7.6 及更高版本中,PASSWORD() 函數已被棄用,且修改密碼的語法發生了變化,所以這種方法失效了,有用的如下:

??用戶自己和超級用戶修改自己的密碼

ALTER USER '用戶名'@'主機名' IDENTIFIED BY '你的密碼';
FLUSH PRIVILEGES; #刷新權限一下

刪除用戶

??刪除用戶的SQL語句如下:

DROP USER '用戶名'@'登錄地址';

在這里插入圖片描述
??刪除用戶時如果不指明待用戶的登錄地址,則默認刪除的是登錄地址為 % 的用戶。

二、數據庫的權限

MySQL中的權限

權限列名上下文
CREATECreate_priv數據庫、表或索引
DROPDrop_priv數據庫或表
GRANT OPTIONGrant_priv數據庫、表或保存的程序
REFERENCESReferences_priv數據庫或表
ALTERAlter_priv
DELETEDelete_priv
INDEXIndex_priv
SELECTSelect_priv
UPDATEUpdate_priv
CREATE VIEWCreate_view_priv視圖
SHOW VIEWShow_view_priv視圖
ALTER ROUTINEAlter_routine_priv保存的程序
CREATE ROUTINECreate_routine_priv保存的程序
EXECUTEExecute_priv保存的程序
FILEFile_priv服務器主機上的文件訪問
CREATE TEMPORARY TABLESCreate_tmp_table_priv服務器管理
LOCK TABLESLock_tables_priv服務器管理
CREATE USERCreate_user_priv服務器管理
PROCESSProcess_priv服務器管理
RELOADReload_priv服務器管理
REPLICATION CLIENTRepl_client_priv服務器管理
REPLICATION SLAVERepl_slave_priv服務器管理
SHOW DATABASESShow_db_priv服務器管理
SHUTDOWNShutdown_priv服務器管理
SUPERSuper_priv服務器管理

??新創建的用戶沒有任何權限,因此創建用戶后需要給用戶授權

給用戶授權

??給用戶授權的SQL如下:

-- 對于 MySQL8.0及以上版本,GRANT 語句 不能直接結合 IDENTIFIED BY 子句 來創建用戶或修改密碼。這兩個操作需要分開執行。(問就是嘗試過,繃)
-- 1. 創建用戶(或修改密碼)
CREATE USER IF NOT EXISTS 'HQ'@'%' IDENTIFIED BY '@Lhq123456';
-- 如果用戶已存在,改用:
-- ALTER USER 'HQ'@'%' IDENTIFIED BY '@Lhq123456';-- 2. 授予權限
GRANT SELECT ON Test.* TO 'HQ'@'%';
FLUSH PRIVILEGES;
  • ‘用戶名’@‘登錄地址’:表示給哪一個用戶授權。
  • 庫名.對象名:表示要授予用戶哪個數據庫下的哪個對象的權限。
  • 權限列表:表示要授予用戶何種權限,多個權限之間用逗號隔開。
  • IDENTIFIED BY ‘密碼’:創建用戶的同時也要設置一個密碼

??比如下面創建用戶 HQ ,并授予用戶在 Test 數據庫下所有對象的 select 權限
在這里插入圖片描述

??授權后通過 show grants for ‘用戶名’@‘登錄地址’ 命令,可以查看該用戶現有的權限

在這里插入圖片描述

  • 創建用戶后該用戶默認會有 USAGE 權限,該權限只能用于數據庫登錄,不能執行任何操作。
  • *.*表示所有數據庫的所有對象,庫名.*表示某個數據庫的所有對象(表、視圖、存儲過程等)

??進入 Test 數據庫后,也能查看其中的所有表

在這里插入圖片描述
??但該用戶目前只能查看表中的信息,而不能對表中的數據進行修改,因為我們只授予了該用戶 select 權限。如下

在這里插入圖片描述

??下面將 Test 數據庫下的所有權限都授予該用戶

在這里插入圖片描述

??這時該用戶才可以對表中的數據進行其他操作

在這里插入圖片描述

回收權限

??回收權限的SQL如下:

REVOKE 權限列表 ON 庫名.對象名 FROM '用戶名'@'登錄地址';
  • 回收權限的語法與授權一樣,只不過將 to 關鍵字改為了 from

比如下面將用戶 HQ 在 Test 數據庫下的所有權限回收

在這里插入圖片描述

??但是回收用戶在某一數據庫下的權限后,在該用戶下一次進入該數據庫時才會起作用,如果回收權限時該用戶正在使用對應數據庫,那么回收權限后該用戶仍然擁有對應的權限。


總結

??怎么樣,這篇也不難吧,但是更令人振奮的是馬上就要迎來 MySQL 的尾聲了,至少我接下來很大一段時間不會再更新 MySQL 專欄了

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

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

相關文章

react19相關問題和解答

目錄 1. react19將ref放在了props中(不再需要 forwardRef),那么是不是可以通過ref獲取子組件的全部變量了? 我的子組件的useImperativeHandle還需要定義嗎? 1.1. ref 在 props 中的本質變化 1.2. 為什么不能訪問全部變量? 2. In HTML,cannot be a descendant of. Thi…

Code Composer Studio:CCS 設置代碼折疊

Code Composer Studio:設置代碼折疊,可以按函數,if, 等把代碼折疊起來。1.2.開啟折疊選項3.開啟后,如果文件已經打開,要關掉重新打開文件就可以開到折疊功能生效。

JMeter groovy 編譯成.jar 文件

groovy 編譯 一、windows 下手動安裝Groovy 下載 Groovy 二進制包 前往官網:https://groovy.apache.org/download.html 下載 Binary release( https://groovy.jfrog.io/ui/native/dist-release-local/groovy-zips/apache-groovy-sdk-4.0.27.zip &#xf…

使用maven-shade-plugin解決依賴版本沖突

項目里引入多個版本依賴時,最后只會使用其中一個,一般可以通過排除不使用的依賴處理,但是如果需要同時使用多個版本,可以使用maven-shade-plugin解決。以最典型的poi為例,poi版本兼容性很低,如果出現找不到…

[CH582M入門第十一步]DS18B20驅動

學習目標: 1、介紹DS18B20 2、學習單總線 3、學習DS18B20程序驅動一、DS18B20介紹 DS18B20 是一款由 Maxim Integrated(原Dallas Semiconductor) 推出的 數字溫度傳感器,以其單總線(1-Wire)通信協議、高精度和廣泛應用而聞名。以下是其核心特點和應用介紹: 主要特性 數…

SGLang + 分布式推理部署DeepSeek671B滿血版

部署設備:28A100 80G,兩臺機器,每臺機器8張A100。 模型:deepseek-671B-int8 模型下載地址:https://huggingface.co/meituan/DeepSeek-R1-Block-INT8 模型參考: 1、SGLang Docker部署 github地址&#…

PCL 間接平差擬合球

目錄 一、算法原理 1、計算流程 2、參考文獻 二、代碼實現 三、結果展示 本文由CSDN點云俠原創,首發于2025年7月24日。博客長期更新,本文最新更新時間為:2025年7月24日。 一、算法原理 1、計算流程 空間球方程: ( x ? a ) 2 + ( y ? b ) 2 + ( z ? c ) 2 = R 2 (1) (…

基于 HAProxy 搭建 EMQ X 集群

負載均衡器(LB)負責分發設備的 MQTT 連接與消息到 EMQ X 集群,采用 LB 可以提高 EMQ X 集群可用性、實現負載平衡以及動態擴容。 HAProxy簡介 HAProxy 是一款高性能的 開源負載均衡器 和 反向代理服務器,主要用于在多個服務器之…

RISC-V基金會Datacenter SIG月會圓滿舉辦,探討RAS、PMU性能分析實踐和經驗

一直以來,龍蜥社區在 RISC-V 生態建設中持續投入,并積極貢獻上游社區。多位龍蜥社區成員在 RISC-V 國際基金會擔任主席/副主席角色,與來自阿里云、阿里達摩院、中興通訊、浪潮信息、中科院軟件所、字節跳動、Google、 MIT、Akeana 等企業的專…

CloudComPy使用PyInstaller打包后報錯解決方案

情況描述 筆者在spec文件中,datas變量設置如下。如果你的報錯類似于“找不到cloudComPy”,先嘗試如下的設置。 datas[(CloudCompare,cloudComPy)], 筆者在打包完成后,打開軟件發現報錯: from cloudComPy import* ModuleNotFoun…

node.js中的path模塊

在 Node.js 中,path 模塊提供了處理和操作文件路徑的功能,其中 path.join 和 path.resolve 是兩個常用的方法。它們在處理路徑時有不同的行為和用途: 功能概述 path.join(): 該方法主要用于將多個路徑片段拼接成一個完整的路徑字符串。它會正…

將Scrapy項目容器化:Docker鏡像構建的工程實踐

引言:爬蟲容器化的戰略意義在云原生與微服務架構主導的時代,??容器化技術??已成為爬蟲項目交付的黃金標準。據2023年分布式系統調查報告顯示:92%的生產爬蟲系統采用容器化部署容器化使爬蟲環境配置時間??減少87%??Docker化爬蟲的故障…

Unity × RTMP × 頭顯設備:打造沉浸式工業遠控視頻系統的完整方案

結合工業現場需求,探索如何通過大牛直播SDK打造可在 Pico、Quest 等頭顯設備中運行的 RTMP 低延遲播放器,助力構建沉浸式遠程操控系統。 一、背景:沉浸式遠程操控的新趨勢 隨著工業自動化、5G 專網、XR 技術的發展,遠程操控正在從…

HTTPS如何保障安全?詳解證書體系與加密通信流程

HTTP協議本身是明文傳輸的,安全性較低,因此現代互聯網普遍采用 HTTPS(HTTP over TLS/SSL) 來實現加密通信。HTTPS的核心是 TLS/SSL證書體系 和 加密通信流程。一、HTTPS 證書體系HTTPS依賴 公鑰基礎設施(PKI, Public K…

數據的評估與清洗篇---清洗數據

處理前的準備 檢查索引與列名 在處理內容之前,需要先看看索引或列名是否有意義,若索引和列名都是亂七八糟的,應該對他們進行重命名或者重新排序,以便我們理解數據。 清洗數據 清洗數據原則 針對數據內容,一般先解決結構性問題,再處理內容性問題。整潔數據的特點是: …

Ubuntu apt和apt-get的區別

好的,這是一個非常經典且重要的問題。apt install 和 apt-get install 的區別是很多 Ubuntu/Debian 新手都會遇到的困惑。 簡單來說,它們的功能非常相似,但設計目標和用戶體驗不同。 一句話總結 apt 是 apt-get 的一個更新、更友好、更現代化…

多端適配災難現場:可視化界面在PC/平板/大屏端的響應式布局實戰

摘要精心設計的可視化大屏,在平板上顯示時圖表擠成一團,在PC端操作按鈕小到難以點擊,某企業的可視化項目曾因多端適配失敗淪為“災難現場”,不僅用戶差評如潮,還被競爭對手嘲諷技術落后。多端適配真的只能靠“反復試錯…

Vulnhub Web-Machine-N7靶機攻略(附VB安裝教程)

1.VB安裝 安裝地址:https://download.virtualbox.org/virtualbox/7.1.12/VirtualBox-7.1.12-169651-Win.exe 下載好后直接打開即可開始安裝。安裝前先打開任務管理器(搜索框直接搜索即可)查看性能里面的虛擬化是否打開。 開始安裝。 這里顯…

vite搭建react-ts項目,@別名配置

vite搭建react-ts項目,別名配置一、配置別名二、輸入/能索引文件三、解決找不到模塊“/pages/home”或其相應的類型聲明一、配置別名 vite.config.ts文件 import { defineConfig, loadEnv, type ConfigEnv, type UserConfig } from "vite"; import reac…

AWS OpenSearch 搜索排序常見用法

背景介紹 AWS OpenSearch是AWS的一個檢索分析服務&#xff0c;是基于開源的Elasticsearch 7.x分支fork出來的獨立的一個代碼倉庫&#xff0c;做了獨立的維護&#xff0c;加入了一些自己的優化&#xff0c;本文在這里主要介紹是常見的基礎用法 引入相關依賴<dependency>&l…