包含mysql穿件用戶%網段的詞條

本文目錄一覽:

如何設置某個網段的IP訪問MYSQL服務器

可以通過對某個用戶授權來限制這個連接帳號的訪問,比如:

grant select on db.table1 to user1@’1.2.3.%’ identified by ‘password’;

這樣user1隻能在1.2.3.% 這個範圍內來訪問你的mysql server .

MySQL中如何修改用戶各種信息

在MySQL中修改用戶的語法如下:

看了這麼一大坨東西,感覺啥也沒有告訴我,一臉懵逼。下面我們一起來解讀一下具體的每一個選項的含義。

對於這個大家應該有所了解。

首先它是被中括號包裹起來的,表示是可選的不是必須的,也就是說在我們的 alter user 語句中,這個 IF EXISTS 可以不出現不是必須要寫的。但是為什麼還要有這個呢,這個選項出現的目的是為了讓你在執行一個 alter user 語句的時候,如果語句中指定的數據庫用戶不存在(或者你寫用戶名稱的是寫錯了),而不至於出現一個錯誤的信息,如果指定了 IF EXISTS 這個詞,他就會以一個警告的信息提示你而不是直接給你一個錯誤信息。

更直白一下就是:如果你的 alter user 的語句中指定的用戶確實存在,那麼就執行你的語句,如果不存在呢,就不執行你的語句,跳過這個 alter user 的指令。看示例:

在上面的例子中,第一個修改用戶的語句,沒有使用 if exists 關鍵詞直接修改了一個不存在的用戶的信息,結果直接出現了錯誤信息,接着我們使用了 if exists 關鍵詞,結果SQL語句執行成功,只是出現了一個 warning 警告,然後我們通過 show warnings 命令查看警告信息的內容,提示我們用戶 ‘zhangsanfeng’@’%’ 不存在。這就是 if exists 關鍵詞的存在的意義。

當我們修改一個用戶的信息的時候,我們需要指定用戶的名稱。這個名稱,不僅僅使我們平時登錄數據庫的時候,輸入的用戶的名字,還有一個隱含的部分就是用戶登錄的 host 網段,這個網段表示只允許該用戶通過這個網段登錄,如果用戶不在這個定義的網段內,即便是用戶名和密碼正確,也不能爭取的登錄。

下面的創建用戶是兩個不同的用戶。

上面的兩個用戶中,分別表示如下:

當然,我們可以使用模糊匹配的方式來限定用戶登錄的網段,比如我們創建下面第一個用戶表示只要這個用戶登錄的時候,使用的主機的IP地址是在 10.10.0.0~10.10.255.255 這個網段質檢的任何一個IP地址都可以登錄。

特殊的網段 localhost 。如果我們創建如下的用戶,則表示該用戶只能在 MySQL 數據庫所在的服務器本機上登錄。

還有另外一個特殊的網段 % 。它表示用戶可以通過任何一個IP地址來登錄,不對用戶登錄的主機所在的網段做任何限制。如下用戶就是不對它登錄的主機IP地址做任何限制。

auth_option 選項的含義表示指定用戶登錄數據庫的時候使用的驗證插件和密碼。它的選項有如下幾種,下面我們分別展開分析一下各個選項的使用場景和示例。

如果在 IDENTIFIED 關鍵字後面沒有使用 WITH 關鍵字指定使用的密碼插件名稱,則會使用 MySQL 默認的密碼插件。對於 MySQL 默認的密碼插件是什麼,可以使用下面的命令進行查看:

通過上面的輸出,我們可以看出默認的密碼插件採用的是 mysql_native_password 插件,參數 default_authentication_plugin 的值是可以在 MySQL 的配置文件 my.cnf 中指定的,它可以有以下兩種取值:

MySQL 的配置文件 my.cnf 中配置默認的密碼認證插件的方式如下:

如果我們要修改某一個用戶的密碼認證插件,就可以使用到 IDENTIFIED WITH auth_plugin 這個語句了。如果一個用戶它的密碼認證插件使用的是默認的 mysql_native_password ,我們想把它的密碼認證插件修改為 sha256_password ,此時我們就可以使用下面的命令來修改:

執行完成上述命令後, xyz 這個用戶的密碼就會設置為空,並更新它的密碼為已經過期,同時更新了它的密碼認證插件為 sha256_password ,結果如下所示:

更改用戶的密碼認知方式之後,當 xyz 再次嘗試登錄 MySQL 數據庫的時候,輸入空密碼登錄成功後,會要求其修改一下自己的密碼,然後才可以執行其他SQL語句的操作,這個要求和我們剛安裝 MySQL 數據庫後,第一次使用 root 登錄的時候要求修改 root 的密碼是一樣的。下面是修改完成用戶 xyz 的密碼認證插件之後,嘗試使用空密碼登錄後的操作示例:

指定用戶的密碼認證插件,並設置密碼。

當我們想給用戶指定密碼的認證插件,並且想為其設置密碼的時候,可以使用這個命令,示例如下:

這樣用戶 xyz 的密碼認證方式修改為了 mysql_native_password ,並且修改它的密碼為 xyz 。需要我們主要的是 by 關鍵字後面跟的是密碼的明文,也就是我們嘗試登錄的時候,輸入的密碼的值。

指定用戶的密碼認證插件,並設置密碼。

當我們想給用戶指定密碼的認證插件,並且想為其設置密碼的時候,可以使用這個命令,示例如下:

這樣用戶 xyz 的密碼認證方式修改為了 mysql_native_password ,並且修改它的密碼為 xyz 。需要我們主要的是 as 關鍵字後面跟的是加密後的密碼,而不是我們的明文的密碼。如果我們想知道得到一個加密後的密碼,則可以使用下面 password() 函數來得到加密後的密碼。

這裡主要是指定用戶在連接到MySQL數據庫的時候,是否需要使用加密的方式,如果使用加密的方式,則需要啟用SSL加密協議,同時也需要對MySQL進行證書的配置。

考慮到性能的問題,使用TLS加密的方式連接MySQL數據庫會對MySQL數據庫的性能有一定的影響。非必要情況下,一般不建議啟用TLS加密連接到數據庫,因為大家的MySQL數據庫一般都是針對內網開放的。所以,啟用TLS加密協議連接沒有必要。

resource_option 選項中,主要是為每一個用戶設置它所能使用到資源,做資源的使用限制。示例如下:

上面四個參數的值如果為 0 ,則表示對應的資源限制不做任何限制。

password_option 選項用來配置用戶的密碼,指定其密碼的效期。下面看幾個示例:

對於MySQL系統默認的有效期是多少,可以通過如下命令查看,下面的值為 0 表示密碼有效期為永久有效。

lock_option 選擇是用來鎖定和解鎖用戶的。示例如下:

如何在MySQL中的獲取IP地址的網段

效果展示:通過下面的命令可以快速的獲取IP地址的網段

命令解釋:

inet_aton(‘209.207.224.1’)這個函數是將IP地址轉化為一個序列.

convert是將序列類型定義成整數.

0xFFFFFF00的意思是與FFFFFF00這個16進制數進行與操作.這步操作相當於掩碼.可以過濾網段.

inet_ntoa這個函數是將整理好的序列轉化成IP地址的形式.

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/277124.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-19 13:20
下一篇 2024-12-19 13:20

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • Python中接收用戶的輸入

    Python中接收用戶的輸入是一個常見的任務,可以通過多種方式來實現。本文將從以下幾個方面對Python中接收用戶的輸入做詳細闡述。 一、使用input函數接收用戶輸入 Pytho…

    編程 2025-04-29
  • Python彈框讓用戶輸入

    本文將從多個方面對Python彈框讓用戶輸入進行闡述,並給出相應的代碼示例。 一、Tkinter彈窗 Tkinter是Python自帶的圖形用戶界面(GUI)庫,通過它可以創建各種…

    編程 2025-04-28
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • Zookeeper ACL 用戶 anyone 全面解析

    本文將從以下幾個方面對Zookeeper ACL中的用戶anyone進行全面的解析,並為讀者提供相關的示例代碼。 一、anyone 的作用是什麼? 在Zookeeper中,anyo…

    編程 2025-04-28
  • MySQL左連接索引不生效問題解決

    在MySQL數據庫中,經常會使用左連接查詢操作,但是左連接查詢中索引不生效的情況也比較常見。本文將從多個方面探討MySQL左連接索引不生效問題,並給出相應的解決方法。 一、索引的作…

    編程 2025-04-28
  • Python中獲取用戶輸入命令的方法解析

    本文將從多個角度,分別介紹Python中獲取用戶輸入命令的方法,希望能夠對初學者有所幫助。 一、使用input()函數獲取用戶輸入命令 input()是Python中用於獲取用戶輸…

    編程 2025-04-27
  • CentOS 7在線安裝MySQL 8

    在本文中,我們將介紹如何在CentOS 7操作系統中在線安裝MySQL 8。我們會從安裝環境的準備開始,到安裝MySQL 8的過程進行詳細的闡述。 一、環境準備 在進行MySQL …

    編程 2025-04-27

發表回復

登錄後才能評論