萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MYSQL Grant,Revoke用戶權限管理用法介紹

MYSQL Grant,Revoke用戶權限管理用法介紹

本文章詳細的介紹一下關於MYSQL Grant,Revoke用戶權限管理用法介紹,有需要的朋友可參考參考。

MySQL可以為不同的用戶分配嚴格的、復雜的權限。這些操作大多都可以用SQL指令Grant(分配權限)和Revoke(回收權限)來實現。 Grant可以把指定的權限分配給特定的用戶,如果這個用戶不存在,則會創建一個用戶。

Grant 常用格式:

grant 權限1,權限2,…權限n on 數據庫名稱.表名稱 to 用戶名@用戶地址 identified by ‘連接口令’;

權限1,權限2,…權限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14個權限。
當權限1,權限2,…權限n被all privileges或者all代替,表示賦予用戶全部權限。
當數據庫名稱.表名稱被*.*代替,表示賦予用戶操作服務器上所有數據庫所有表的權限。
用戶地址可以是localhost,也可以是ip地址、機器名字、域名。也可以用’%’表示從任何地址連接。
‘連接口令’不能為空,否則創建失敗。

比較重要的是priveleges(權限)。
普通用戶的權限權限應用於描述
SELECT表,列允許用戶從表中選擇行(記錄)
INSERT表,列允許用戶在表中插入新行
UPDATE表,列允許用戶修改現存表裡行中的值
DELETE表允許用戶刪除現存表的行
INDEX表允許用戶創建和拖動特定表索引
ALTER表允許用戶改變現存表的結構。例如,可添加列、重命名列或表、修改列的數據類型
CREATE數據庫,表允許用戶創建新數據庫或表。如果在GRANT中指定了一個特定的數據庫或表,他們只能夠創建該數據庫或表,即他們必須首先刪除(Drop)它
DROP數據庫,表允許用戶拖動(刪除)數據庫或表

管理員權限權限描述
CREATE TEMPORARY TABLES允許管理員在CREATE TABLE語句中使用TEMPORARY關鍵字
FILE允許將數據從文件讀入表,或從表讀入文件
LOCK TABLES允許使用LOCK TABLES語句
PROCESS允許管理員查看屬於所有用戶的服務器進程
RELOAD允許管理員重新載入授權表、清空授權、主機、日志和表格
REPLICATION CLIENT允許在復制主機(Master)和從機(Slave)上使用SHOW STATUS
REPLICATION SLAVE允許復制從服務器連接到主服務器
SHOW DATABASES允許使用SHOW DATABASES語句查看所有的數據庫列表。沒有這個權限,用戶只能看到他們能夠看到的數據庫
SHUTDOWN允許管理員關閉MySQL服務器
SUPER允許管理員關閉屬於任何用戶的線程

特別的權限權限描述
ALL(或ALL PREVILEGES)授予所有權限
USAGE不授予權限。這將創建一個用戶並允許他登錄,但不允許其他操作,如update/select 等

實例:

例如:

 代碼如下 復制代碼 mysql>grant select,insert,update,delete on test.user to mql@localhost identified by ‘123456′;

給 本地的用戶mql分配可對數據庫test的user表進行select,insert,update,delete操作的權限,並設定口令為 123456。若mql用戶不存在,則將自動創建此用戶. 具體的權限控制在mysql.db表中可以查看到.也可直接對這個表進行更新操作進行權限的修改.

 代碼如下 復制代碼 mysql>grant all privileges on test.* to mql@localhost identified by ‘123456′;

給本地用戶mql分配可對數據庫test所有表進行所有操作的權限,並設定口令為123456。

 代碼如下 復制代碼 mysql>grant all privileges on *.* to mql@localhost identified by ‘123456′;

給本地用戶mql分配可對所有數據庫的所有表進行所有操作的權限,並設定口令為123456。

 代碼如下 復制代碼 mysql>grant all privileges on *.* to [email protected] identified by ‘123456′;

給來自61.127.46.128的用戶mql2分配可對所有數據庫的所有表進行所有操作的權限,並設定口令為123456。

REVOKE
REVOKE和作用和GRANT相反,語法格式為:
REVOKE privileges ON 數據庫名[.表名] FROM user_name

例如:
創建用戶Bob,密碼為“bob”,但不給他任何權限:

 代碼如下 復制代碼 GRANT usage on * to Bob identified by ’bob’;

授予Bob在books數據庫中的查詢和插入權限:

 代碼如下 復制代碼 GRANT select, insert on books.* to   Bob;

取消Bob在books數據庫中的所有權限:

 代碼如下 復制代碼 REVOKE all on books.* from Bob;

注:需要指出的是,REVOKE all…僅僅是回收用戶的權限,並不刪除用戶。在MySQL中,用戶信息存放在mysql.User中。MySQL可以通過DROP USER來徹底刪除一個用戶,其用法為:

 代碼如下 復制代碼 DROP USER user_name;

例如,要刪除用戶Bob,可以用:

 代碼如下 復制代碼 DROP USER Bob;
copyright © 萬盛學電腦網 all rights reserved