亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL用戶權限驗證與管理方法詳解

 更新時間:2018年04月28日 10:36:17   作者:編程人,在天涯  
這篇文章主要介紹了MySQL用戶權限驗證與管理方法,結合實例形式詳細分析了mysql針對用戶權限的驗證、查看、收回、修改等各種常用操作技巧,需要的朋友可以參考下

本文實例講述了MySQL用戶權限驗證與管理方法。分享給大家供大家參考,具體如下:

一、Mysql權限分兩階段驗證

1. 服務器檢查是否允許連接:用戶名、密碼,主機地址。

2. 檢查每一個請求是否有權限實施。

二、Mysql權限列表

權限 權限級別 權限說明
create 數(shù)據(jù)庫、表或索引 創(chuàng)建數(shù)據(jù)庫、表或索引權限
drop 數(shù)據(jù)庫或表 刪除數(shù)據(jù)庫或表權限
grant option 數(shù)據(jù)庫、表或保存的程序 賦予權限選項
references 數(shù)據(jù)庫或表 外鍵權限
alter 更改表,比如添加字段、索引、修改字段等
delete 刪除數(shù)據(jù)權限
index 索引權限
insert 插入權限
select 查詢權限
update 更新權限
create view 視圖 創(chuàng)建視圖權限
show view 視圖 查看視圖權限
alter routine 存儲過程 更改存儲過程權限
create routine 存儲過程 創(chuàng)建存儲過程權限
execute 存儲過程 執(zhí)行存儲過程權限
file 服務器主機上的文件訪問 文件訪問權限
create temporary tables 服務器管理 創(chuàng)建臨時表權限
lock tables 服務器管理 鎖表權限
create user 服務器管理 創(chuàng)建用戶權限
proccess 服務器管理 查看進程權限
reload 服務器管理 執(zhí)行flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, reload等命令的權限
replication client 服務器管理 復制權限
replication slave 服務器管理 復制權限
show databases 服務器管理 查看數(shù)據(jù)庫權限
shutdown 服務器管理 關閉數(shù)據(jù)庫權限
super 服務器管理 執(zhí)行kill線程權限

三、Mysql用戶權限管理操作

1. 權限查詢:

(1)查看mysql的所有用戶及其權限:

select * from mysql.user\G;

(格式化顯示)

(2)查看當前mysql用戶權限:

show grants;

(3)查看某個用戶的權限:

show grants for 用戶名@主機;

示例:

show grants for root@localhost;

2. Mysql用戶創(chuàng)建:

方法一:使用create user命令創(chuàng)建。

create user '用戶名'@'主機' identified by '密碼';

示例:

create user 'wjt'@'localhost' identified by 'wujuntian';

方法二:直接向數(shù)據(jù)表mysql.user中插入一條用戶記錄。

示例:

復制代碼 代碼如下:
insert into mysql.user set user='wujuntian',host='localhost',password=password('123123');

注意:

使用方法二一定要記得要執(zhí)行flush privileges刷新權限。其次,mysql5.7以后,mysql.user表的password字段已被authentication_string代替,所以應將“password”改為“authentication_string”,密碼一定要使用password函數(shù)加密。

3. Mysql用戶刪除:

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

4. Mysql用戶權限授予:

剛創(chuàng)建的用戶默認是沒有權限的,需要使用grant指令進行權限的授予。

grant指令完整格式:

grant 權限列表 on 數(shù)據(jù)庫名.數(shù)據(jù)表名 to '用戶名'@'主機' identified by '密碼' with grant option;

示例:

grant all privileges on *.* to 'wjt'@'localhost' identified by "wujuntian" with grant option;

可使用“*”表示所有數(shù)據(jù)庫或所有數(shù)據(jù)表,“%”表示任何主機地址。

可以使用grant重復給用戶添加權限,進行權限疊加。

with grant option:這個選項表示該用戶可以將自己擁有的權限授權給別人。

記得授權后一定要刷新權限:

flush privileges;

5. Mysql用戶權限回收:

revoke指令格式:

revoke 權限列表 on 數(shù)據(jù)庫名.數(shù)據(jù)表名 from 用戶名@主機;

示例:

revoke select on test.user from wjt@localhost;

注意:

其實GRANT語句在執(zhí)行的時候,如果權限表中不存在目標賬號,則創(chuàng)建賬號;如果已經(jīng)存在,則執(zhí)行權限的新增。

usage權限不能被回收,也就是說,REVOKE用戶權限并不能刪除用戶。

6. 對賬戶重命名:

rename user '舊用戶名'@'舊主機' to '新用戶名'@'新主機';

示例:

rename user 'wujuntian'@'localhost' to 'ajun'@'localhost';

7. Mysql用戶密碼修改:

方法一:使用set password命令。

set password for '用戶名'@'主機' = password('新密碼');

示例:

set password for 'root'@'localhost' = password('123456');

方法二:修改mysql.user表中的password(或authentication_string)字段。

示例:

復制代碼 代碼如下:
update mysql.user set password=password('123123') where user='root' and host='localhost';

注意:

此方法一定要執(zhí)行“flush privileges;”指令刷新權限,否則密碼修改無法生效。Mysql5.7以后應將“password”改為“authentication_string”。

方法三:使用grant指令在授權時修改密碼:

grant select on 數(shù)據(jù)庫名.數(shù)據(jù)表名 to 用戶名@主機 identified by '新密碼' with grant option;

示例:

復制代碼 代碼如下:
grant select on test.user to ajun@localhost identified by '111111' with grant option;

方法四:運行mysqladmin腳本文件。

該文件一般在mysql安裝目錄下的bin目錄中。進入該目錄,根據(jù)一下兩種具體情況輸入命令(只有root用戶有這個權限)。

(1)用戶尚無密碼:

mysqladmin -u 用戶名 password 新密碼;

(2)用戶已有密碼:

mysqladmin -u 用戶名 -p password 新密碼;

(回車后會提示輸入舊密碼,輸入之后即可修改成功。)

注意:

更改密碼時候一定要使用PASSWORD函數(shù)(mysqladmin 和GRANT 兩種方式不用寫,會自動加上)。

8. 忘記密碼登錄mysql:

方法一:

先停止正在運行的Mysql服務,在命令行窗口進入mysql安裝目錄下的bin目錄,在-skip-grant-tables參數(shù)下運行mysqld文件(Linux系統(tǒng)運行mysqld_safe文件更安全):

mysqld --skip-grant-tables

這樣可以跳過Mysql的訪問控制,在控制臺以管理員的身份進入mysql數(shù)據(jù)庫。另外再開啟一個命令行窗口,進入mysql安裝目錄下的bin目錄,直接輸入:mysql,回車,即可登錄mysql,然后就可以重新設置密碼了(注意:此時“Mysql用戶密碼修改”中的四種方法只有第二種方法能使用?。TO置成功后退出,重啟Mysql服務。

方法二:修改mysql配置文件my.ini。

其實原理和方法一一樣,都是利用Mysql提供的--skip-grant-tables參數(shù)來跳過Mysql的訪問控制。打開mysql配置文件my.ini,在'[mysqld]'下加入“skip-grant-tables”,保存,重啟Mysql服務,然后就可以不需密碼登錄mysql進行密碼修改了。

Mysql中的“mysql”數(shù)據(jù)庫存儲著所有Mysql用戶的權限信息數(shù)據(jù)表。當Mysql啟動時,所有的權限表內容都被讀進內存中,進行權限判斷時直接使用內存中的內容進行判斷。用grant、revoke或set password對權限表進行的修改會立即被服務器注意到,GRANT操作的本質就是修改權限表后進行權限的刷新。但是如果手工修改權限表,例如使用insert、update、delete等操作權限表的話,應該執(zhí)行一個flush privileges命令,該命令會使服務器重新讀取權限表內容到內存,從而使修改生效。如果不執(zhí)行該命令,必須重啟mysql服務才能生效。所以,最好使用grant、revoke或set password對權限表進操作,可以省去執(zhí)行flush privileges命令的麻煩,而且如果忘了執(zhí)行這個命令的話你會很抓狂。。。

不僅如此,刪除用戶、重命名用戶最好也分別使用drop user、rename user命令進行操作,而不要使用delete、update命令進行操作。前者不但會對mysql.user數(shù)據(jù)表進行操作,同時也會更新其他權限表的記錄,而后者只會對mysql.user表的數(shù)據(jù)進行操作,這樣會出現(xiàn)很多問題,因為用戶的權限信息不僅僅存在于mysql.user表中。比如你使用delete刪除了mysql.user表中的一個用戶,但是沒有操作其他權限數(shù)據(jù)表的話,那么其他權限數(shù)據(jù)表例如tables_priv中關于該用戶的權限記錄還存在著,下次如果想使用create user命令創(chuàng)建相同名稱的用戶會失敗,只能使用insert into指令向mysql.user表中插入記錄,或者先把其他權限數(shù)據(jù)表中與該用戶名相關的記錄刪除。使用update命令重命名用戶也會出現(xiàn)很大問題,重命名后用戶失去了很多的權限,而其他權限表中關于原用戶名的記錄則成了沒用的記錄,除非你對每一個權限表都進行相同的更新操作,但這很麻煩。所以,使用drop user、rename user吧,一個命令就可以讓系統(tǒng)自動幫你完成所有事情,何樂而不為呢!

Mysql權限檢查:

mysql 先檢查對大范圍是否有權限,如果沒有再到小范圍里去檢查。比如:先檢查對這個數(shù)據(jù)庫是否有select權限,如果有,就允許執(zhí)行。如果沒有,再檢查對表是否有select權限,一直到最細粒度,也沒有權限,就拒絕執(zhí)行。因此,粒度控制越細,權限校驗的步驟越多,性能越差。

更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》、《MySQL數(shù)據(jù)庫鎖相關技巧匯總》及《MySQL常用函數(shù)大匯總

希望本文所述對大家MySQL數(shù)據(jù)庫計有所幫助。

相關文章

  • 一文帶你了解Mysql主從同步原理

    一文帶你了解Mysql主從同步原理

    本文主要講解了Mysql主從同步原理,主從同步可以擴展數(shù)據(jù)庫的負載能力、容錯還可以數(shù)據(jù)備份等。想要了解相關內容的朋友可以閱讀這篇文章
    2021-08-08
  • 解決MySQL server has gone away錯誤的方案

    解決MySQL server has gone away錯誤的方案

    在本篇文章里小編給大家分享的是一篇關于MySQL server has gone away錯誤的解決辦法,有需要的朋友們可以參考下。
    2020-02-02
  • 使用pt-kill根據(jù)一定的規(guī)則來kill連接的方法

    使用pt-kill根據(jù)一定的規(guī)則來kill連接的方法

    pt-kill 是一個優(yōu)秀的kill MySQL連接的一個工具,是percona toolkit的一部分,在因為空閑連接較多導致超過最大連接數(shù)、某個有問題的sql導致mysql負載很高時,都需要將一些連接kill掉,這個工具主要就是這個用途
    2016-04-04
  • CentOS下安裝MySQL5.6.10和安全配置教程詳解

    CentOS下安裝MySQL5.6.10和安全配置教程詳解

    這篇文章主要介紹了CentOS下安裝MySQL5.6.10和安全配置教的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-12-12
  • MySQL數(shù)據(jù)庫列的增刪改實現(xiàn)方法

    MySQL數(shù)據(jù)庫列的增刪改實現(xiàn)方法

    這篇文章主要介紹了MySQL數(shù)據(jù)庫列的增刪改實現(xiàn)方法,結合實例形式分析了mysql數(shù)據(jù)庫針對列的增加、修改、刪除等相關操作sql命令及使用技巧,需要的朋友可以參考下
    2019-03-03
  • mysql日常使用中常見報錯大全

    mysql日常使用中常見報錯大全

    MySQL初學者新安裝好數(shù)據(jù)庫及使用過程中經(jīng)常遇到以下幾類錯誤,本文給大家詳細整理并給出完美解決方案,感興趣的朋友跟隨小編一起看看吧
    2023-03-03
  • MySql官方手冊學習筆記2 MySql的模糊查詢和正則表達式

    MySql官方手冊學習筆記2 MySql的模糊查詢和正則表達式

    MySQL提供標準的SQL模式匹配,以及擴展正則表達式模式匹配的格式
    2012-10-10
  • MySQL 事務與鎖機制詳解及注意事項

    MySQL 事務與鎖機制詳解及注意事項

    MySQL 的事務與鎖機制共同構成了數(shù)據(jù)庫并發(fā)控制的核心,通過遵循 ACID 原則和合理設置事務隔離級別,可以有效地保障數(shù)據(jù)的一致性和完整性,這篇文章主要介紹了MySQL 事務與鎖機制詳解,需要的朋友可以參考下
    2025-04-04
  • 一文帶你理解慢SQL分析與優(yōu)化

    一文帶你理解慢SQL分析與優(yōu)化

    從系統(tǒng)設計角度看,一個系統(tǒng)從設計搭建到數(shù)據(jù)逐步增長,SQL執(zhí)行效率可能會出現(xiàn)劣化,為繼續(xù)支撐業(yè)務發(fā)展,我們需要對慢SQL進行分析和優(yōu)化,下面這篇文章主要給大家介紹了關于慢SQL分析與優(yōu)化的相關資料,需要的朋友可以參考下
    2022-08-08
  • MySql優(yōu)化之InnoDB,4GB內存,多查詢的my.ini中文配置方案詳解

    MySql優(yōu)化之InnoDB,4GB內存,多查詢的my.ini中文配置方案詳解

    本文是一個針對 4G 內存系統(tǒng)(主要運行只有 InnoDB 表的 MySQL 并使用幾個連接數(shù)執(zhí)行復雜的查詢)的MySQL配置文件方案
    2018-03-03

最新評論