【MySQL數據庫】用戶管理

目錄

1,用戶信息

2,創建/刪除/修改用戶

3,數據庫的權限


? ? ? ? MySQL數據庫安裝完之后,我們最開始時使用的都是 root 用戶,其它用戶通常無法進行操作。因此,MySQL數據庫需要對用戶進行管理。

1,用戶信息

????????MySQL中的用戶信息,都存儲在系統數據庫 mysql 的 user 表中。這里只研究 user 表中的?host, user, authentication_string

  • host:指定了允許用戶連接的主機。如果是localhost,表示只能從本機登陸。
  • user:用戶名字段,代表用戶的登錄名稱。
  • authentication_string:該字段存儲了用戶的密碼(或更準確地說,密碼的哈希值)。它是用來驗證嘗試連接到MySQL服務器用戶的身份。

查看MySQL用戶信息:select host,user,authentication_string from user;

? ? ? ? 下面進行有關用戶的操作之前要說明的是,若數據庫服務器的配置文件中(my.cnf里的[mysqld])使用了 skip-grant-tables,那么這里就無法進行用戶相關的操作,因為該選項繞過服務器權限驗證的操作,用戶相關的操作一般都會設計到權限的分配操作,繞過權限驗證操作,就意味著無法給相關用戶分配權限,比如創建用戶,需要給此用戶分配登錄權限。

2,創建/刪除/修改用戶

1,創建用戶

語法:

????????create user '用戶名'@'登陸主機/ip' identified by '密碼';

樣例:

? ? ? ? 在本主機下創建zhu用戶:create user 'zhu'@'localhost' identified by 'zhu';

? ? ? ? 創建test用戶,允許在任意主機下登錄:create user 'test'@'%' identified by '123';

? ? ? ? 查看user表可觀看到:select user,host,authentication_string from user;

2,刪除用戶

語法:

????????drop user '用戶名'@'主機名';

樣例:

? ? ? ? 在本主機下刪除用戶zhu:drop user 'zhu'@'localhost';

3,修改用戶密碼

語法:

? ? ? ??自己改自己密碼:set password=password('新的密碼');

????????root用戶修改指定用戶的密碼:set password for '用戶名'@'主機名'=password('新的密碼');

3,數據庫的權限

1,給用戶授權

????????剛創建的用戶沒有任何權限,這也就意味著?MySQL 服務器不會相應該用戶的一切指令(如創建數據庫,建立表,查看數據庫等),因此,對于新建的用戶而言,我們需要給用戶授權。在MySQL中,給用戶授權通常使用 grant 語句來完成。這個命令允許你指定特定的權限給一個或多個數據庫對象。

語法:

????????grant 權限列表?on 庫.對象名?to '用戶名'@'登陸位置'?[identified by '密碼'];

說明:

????????權限列表:可以是 all [可選privileges]表示所有權限,也可以是具體權限如select、insert、update、delete、create、drop等。

????????數據庫名.表名:指明權限應用到哪個數據庫和表上。可以使用通配符*,例如:*.*:表示所有數據庫的所有表;庫.*:表示某個數據庫中的所有數據對象

????????用戶名@主機名:指定用戶以及允許從哪里連接(例如localhost)。

????????IDENTIFIED BY '密碼':可選字段,如果用戶存在,賦予權限的同時修改密碼;如果該用戶不存在,就是創建用戶。

注意:

????????權限列表,多個權限用逗號分開,表示賦予多個權限,例如:

????????grant select on ...

????????grant select, delete, create on ....

????????grant all [privileges] on ...? ? ? ? ?(表示賦予該用戶在指定對象上的所有權限)

? ? ? ? 還有就是,如果發現賦權限后,沒有生效,執行指令:flush privileges; 并退出后重新登錄。

樣例:

? ? ? ? 給zhu用戶賦予所有數據庫下所有表的select和create權限:

????????????????grant select, create?on *.* to 'zhu'@'%';

2,回收權限

語法:

????????revoke 權限列表 on 庫.對象名 from '用戶名'@'登陸位置';

樣例:

????????回收zhu對test數據庫的所有權限:revoke all on test.* from 'zhu'@'%';

? ? ? ? 注意:上面給用戶權限賦予和收回操作全都是在root賬戶下進行的。在權限賦予和收回后,為了確保更改立即生效,我們需要運行指令:flush privileges;?刷新權限。

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

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

相關文章

Python的ArcPy基于Excel表格對大量遙感影像批量重分類

本文介紹基于Python中的ArcPy模塊,以Excel表格內的信息,對遙感影像加以重分類的方法。 首先,明確一下本文的需求。現有按照文章ArcPy批量將柵格文件的屬性表導出為Excel表格的方法(https://blog.csdn.net/zhebushibiaoshifu/artic…

LabVIEW 中VI Server導出 VI 配置

該 LabVIEW VI 展示了在 VI Server 中配置和執行 Exported VIs 的過程,實現對服務器端導出 VI 的遠程調用與操作。 ? 具體過程及模塊說明 前期配置:需確保在 LabVIEW 的 “Tools> Options > VI Server > Protocols” 路徑下,啟用 …

論文閱讀:2024 ACM SIGSAC Membership inference attacks against in-context learning

總目錄 大模型安全相關研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 Membership inference attacks against in-context learning https://arxiv.org/pdf/2409.01380 https://www.doubao.com/chat/4030440311895554 速覽 這篇論文主要研究了…

從 Python 基礎到 Django 實戰 —— 數據類型驅動的 Web 開發之旅

主題簡介: 本主題以 Python 基礎數據類型為核心,結合 Django 框架的開發流程,系統講解如何通過掌握數字、字符串、列表、元組、字典等基礎類型,快速構建功能完善的 Web 應用。通過理論與實踐結合,幫助學員從零基礎 Py…

軟考 系統架構設計師系列知識點之雜項集萃(53)

接前一篇文章:軟考 系統架構設計師系列知識點之雜項集萃(52) 第85題 在靜態測試中,主要是對程序代碼進行靜態分析。“數據初始化、賦值或引用過程中的異常”屬于靜態分析中的()。 A. 控制流分析 B. 數據…

Raycaster光線投射

Raycaster光線投射 3D虛擬工廠在線體驗 描述 光線投射Raycaster,用于進行raycasting(光線投射)。 光線投射用于進行鼠標拾取(在三維空間中計算出鼠標移過了什么物體)。 構造器 Raycaster( origin : Vector3, dire…

初識Linux —— git三板斧

版本控制器git 為了我們方便管理不同版本的文件,就有了版本控制器; 所謂的版本控制器,就是能夠了解到一個文件的歷史記錄(修改記錄);簡單來說就是記錄每一次的改動和版本迭代的一個管理系統,同…

用哈希表封裝出unordered_set/_map

前提: ①:本博客是對哈希表(開散列)進行封裝,因為閉散列不優秀(與庫保持一致) ②:哈希表封裝出unordered_set/_map和紅黑樹封裝出ste/map是大同小異的,可以先看下:用紅黑樹封裝出set和map -CSDN博客 ③&…

情緒ABC——AI與思維模型【93】

一、定義 情緒ABC思維模型是一種心理學上的理論,它認為人們的情緒和行為反應(C,Consequence)并非直接由激發事件(A,Activating event)引起,而是由個體對激發事件的認知和評價所產生…

Unity URP RenderTexture優化(二):深度圖優化

目錄 前言: 一、定位深度信息 1.1:k_DepthStencilFormat 1.2:k_DepthBufferBits 1.3:_CameraDepthTexture精度與大小 1.4:_CameraDepthAttachment數量 二、全代碼 前言: 在上一篇文章:Un…

【力扣刷題記錄】hot100錯題本(一)

1. 簡單題 我的答案:時間復雜度過高:O(N^3) class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:for num in nums:if (target - num) in nums:#多余for i in range(len(nums)):if nums[i] num :for j in range(i1,len(nu…

線程池的線程數配置策略

目錄 1. CPU密集型任務 2. IO密集型任務 3. 混合型任務 1. CPU密集型任務 特點:任務主要消耗CPU資源(如計算、加密、壓縮)。 推薦線程數: 線程數 ≈ 物理核心數 1 / CPU - 1(不知道哪個√) 例如&#…

基于開源鏈動2+1模式AI智能名片S2B2C商城小程序的爆品力構建研究

摘要:在興趣電商生態中,爆品力已成為品牌實現指數級增長的核心競爭力。本文以開源鏈動21模式AI智能名片S2B2C商城小程序為技術載體,結合抖音平臺的內容傳播特性,提出“需求挖掘-技術賦能-內容轉化”三位一體的爆品力構建模型。通過…

photoshop學習筆記2

第一章 第01節-界面的重要性(學習方法) 第02節-文件的打開新建及儲存 第03節-移動工具(圖層概念) 學習目標: 1.了解圖層概念 2.認識工具屬性 3.掌握工具使用 圖層的概念 移動工具 移動工具就是用來移動圖層內容的。是否可以用來移動組…

operator 可以根據需要重載 == 運算符進行比較

要將 vector<AppInfo> 類型的 A 和 B 兩個容器進行比較&#xff0c;并且當 B 中有 A 中沒有的元素時&#xff0c;插入到數據庫中&#xff0c;你可以通過以下步驟實現&#xff1a; 比較元素&#xff1a;遍歷 vector<B>&#xff0c;檢查每個元素是否在 vector<A&…

Three.js在vue中的使用(二)-加載、控制

在 Vue 中使用 Three.js 加載模型、控制視角、添加點擊事件是構建 3D 場景的常見需求。下面是一個完整的示例&#xff0c;演示如何在 Vue 單文件組件中實現以下功能&#xff1a; 使用 GLTFLoader 加載 .glb/.gltf 模型添加 OrbitControls 控制視角&#xff08;旋轉、縮放、平移…

軟件架構之旅(6):淺析ATAM 在軟件技術架構評估中的應用

文章目錄 一、引言1.1 研究背景1.2 研究目的與意義 二、ATAM 的理論基礎2.1 ATAM 的定義與核心思想2.2 ATAM 涉及的質量屬性2.3 ATAM 與其他架構評估方法的關系 三、ATAM 的評估流程3.1 準備階段3.2 場景和需求收集階段3.3 架構描述階段3.4 評估階段3.5 結果報告階段 四、ATAM …

vue-chat 開源即時聊天系統web本地運行方法

官方文檔 https://gitcode.com/gh_mirrors/vuechat7/vue-chat.git npm install 可能需要用 npm 下載兩個包 "viewerjs": "^1.9.0", "vue-hot-reload-api": "^2.3.4", src\constant\index.js 改下面兩行 export const LOGIN_API …

Rust與C/C++互操作實戰指南

目錄 1.前言2.動態庫調用2.1 動態加載2.2 靜態加載3.代碼調用4.靜態庫調用1.前言 本文原文為:Rust與C/C++互操作實戰指南 由于rust誕生時間太短,目前生態不夠完善,因此大量的功能庫都需要依賴于C、C++語言的歷史積累。 而本文將要介紹的便是如何實現rust與c乃至c++之間實…