[MySQL]檢視使用者許可權與GRANT用法
檢視使用者許可權
show grants for 你的使用者
比如:
show grants for [email protected]'localhost';
Grant 用法
GRANT USAGE ON *.* TO 'discuz'@'localhost' IDENTIFIED BY PASSWORD '*C242DDD213BE9C6F8DA28D49245BF69FC79A86EB';
GRANT ALL PRIVILEGES ON `discuz`.* TO 'discuz'@'localhost';
我先按我的理解解釋一下上面兩句的意思
建立一個只可以在本地登陸的 不能操作的用使用者名稱 discuz 密碼為 ***** 已經加密了的
然後第二句的意思是 ,給這個discuz使用者操作discuz資料庫的所有許可權
使用GRANT
GRANT命令用來建立新使用者,指定使用者口令並增加使用者許可權。其格式如下:
mysql> GRANT <privileges> ON <what>
-> TO <user> [IDENTIFIED BY "<password>"]
-> [WITH GRANT OPTION];
正如你看到的,在這個命令中有許多待填的內容。讓我們逐一地對它們進行介紹,並最終給出一些例子以讓你對它們的協同工作有一個瞭解。
<privileges>是一個用逗號分隔的你想要賦予的許可權的列表。你可以指定的許可權可以分為三種類型:
資料庫/資料表/資料列許可權: Alter: 修改已存在的資料表(例如增加/刪除列)和索引。
Create: 建立新的資料庫或資料表。
Delete: 刪除表的記錄。
Drop: 刪除資料表或資料庫。
INDEX: 建立或刪除索引。
Insert: 增加表的記錄。
Select: 顯示/搜尋表的記錄。
Update: 修改表中已存在的記錄。
全域性管理許可權:
file: 在MySQL伺服器上讀寫檔案。
PROCESS: 顯示或殺死屬於其它使用者的服務執行緒。
RELOAD: 過載訪問控制表,重新整理日誌等。
SHUTDOWN: 關閉MySQL服務。
特別的許可權:
ALL: 允許做任何事(和root一樣)。
USAGE: 只允許登入--其它什麼也不允許做。
這些許可權所涉及到的MySQL的特徵,其中的一些我們至今還沒看到,而其中的絕大部分是你所熟悉的。
<what> 定義了這些許可權所作用的區域。*.*意味著許可權對所有資料庫和資料表有效。dbName.*意味著對名為dbName的資料庫中的所有資料表有效。 dbName.tblName意味著僅對名為dbName中的名為tblName的資料表有效。你甚至還可以通過在賦予的許可權後面使用圓括號中的資料列的列表以指定許可權僅對這些列有效(在後面我們將看到這樣的例子)。
<user>指定可以應用這些許可權的使用者。在MySQL中,一個使用者通過它登入的使用者名稱和使用者使用的計算機的主機名/IP地址來指定。這兩個值都可以使用%萬用字元(例如[email protected]%將允許使用使用者名稱kevin從任何機器上登入以享有你指定的許可權)。
<password>指定了使用者連線MySQL服務所用的口令。它被用方括號括起,說明IDENTIFIED BY "<password>"在GRANT命令中是可選項。這裡指定的口令會取代使用者原來的密碼。如果沒有為一個新使用者指定口令,當他進行連線時就不需要口令。
這個命令中可選的WITH GRANT OPTION部分指定了使用者可以使用GRANT/REVOKE命令將他擁有的許可權賦予其他使用者。請小心使用這項功能--雖然這個問題可能不是那麼明顯!例如,兩個都擁有這個功能的使用者可能會相互共享他們的許可權,這也許不是你當初想看到的。
讓我們來看兩個例子。建立一個名為dbmanager的使用者,他可以使用口令managedb從server.host.net連線 MySQL,並僅僅可以訪問名為db的資料庫的全部內容(並可以將此許可權賦予其他使用者),這可以使用下面的GRANT命令:
mysql> GRANT ALL ON db.*
-> TO [email protected]
-> IDENTIFIED BY "managedb"
-> WITH GRANT OPTION;
現在改變這個使用者的口令為funkychicken,命令格式如下:
mysql> GRANT USAGE ON *.*
-> TO [email protected]
-> IDENTIFIED BY "funkychicken";
請注意我們沒有賦予任何另外的許可權(the USAGE許可權只能允許使用者登入),但是使用者已經存在的許可權不會被改變。
現在讓我們建立一個新的名為jessica的使用者,他可以從host.net域的任意機器連線到MySQL。他可以更新資料庫中使用者的姓名和 email地址,但是不需要查閱其它資料庫的資訊。也就是說他對db資料庫具有隻讀的許可權(例如,Select),但是他可以對Users表的name列和email列執行Update操作。命令如下:
mysql> GRANT Select ON db.*
-> TO [email protected]%.host.net
-> IDENTIFIED BY "jessrules";
mysql> GRANT Update (name,email) ON db.Users
-> TO [email protected]%.host.net;
請注意在第一個命令中我們在指定Jessica可以用來連線的主機名時使用了%(萬用字元)符號。此外,我們也沒有給他向其他使用者傳遞他的許可權的能力,因為我們在命令的最後沒有帶上WITH GRANT OPTION。第二個命令示範瞭如何通過在賦予的許可權後面的圓括號中用逗號分隔的列的列表對特定的資料列賦予許可權。
相關推薦
[MySQL]檢視使用者許可權與GRANT用法
檢視使用者許可權 show grants for 你的使用者比如:show grants for [email protected]'localhost'; Grant 用法 GRANT USAGE ON *.* TO 'discuz'@'localhost' IDENTIFIED BY
[MySQL]查看用戶權限與GRANT用法
分隔 協同 來看 通過 p地址 刪除 執行 需要 sel 摘自:http://apps.hi.baidu.com/share/detail/15071849 查看用戶權限 show grants for 你的用戶比如:show grants for root@‘l
MySQL 筆記7 -- 許可權操作與檢視
MySQL 筆記7 – 許可權操作與檢視 MySQL 系列筆記是筆者學習、實踐MySQL資料庫的筆記 課程連結: MySQL 資料庫基礎入門教程 參考文件: MySQL 官方文件 SQL 教程 一、許可權操作 1、許可權 限制使用者對資料庫進
mysql給資料庫授權與收回許可權--------dcl
使用者授權語法 grant 許可權1,許可權2... on 資料庫名.* to 使用者名稱 @IP地址或% 開啟新建立的名為“test”的資料庫後 用 show databases; 的命令 看內部的資料結果如下圖,其實在名為test的資料庫中 還有更多的資料庫
mysql 開發進階篇系列 54 許可權與安全(賬號管理的各種許可權操作 下)
1. 檢視許可權 -- 如果host值不是%, 就要加上host值,下面檢視bkpuser使用者許可權(6個許可權, 限本地連線) SHOW GRANTS FOR bkpuser@localhost; -- 如果host值是%, 就只要輸入使用者名稱,下面檢視z1使用者許可權(
mysql 開發進階篇系列 51 許可權與安全(許可權表user,db詳細介紹 )
一.概述 mysql 的許可權系統主要用來對連線到資料庫的使用者進行許可權驗證,以此來判斷此使用者是否屬於合法使用者,以及合法使用者給予的相應資料庫許可權。下面將介紹許可權系統的工作原理,以及將要熟練掌握賬號的管理和使用方法(mysql版本 5.7)。 1.1 許可權系統的
MySQL的事務管理與檢視特性
MySQL的預設儲存引擎InnoDB支援事務,MyISAM不支援事務。所謂事務,在MySQL中就是一組“在一條船上的”DML語句,它們之間有邏輯關聯性,他們“同生共死”. 事務中還有一個非常重要的概念叫做儲存點:處於事務開始和結束之間,設定一個叫做儲存點的東西,他能夠保留事務進展的中間過程,
MySQL使用者賬戶管理與許可權管理詳解
MySQL 的許可權表在資料庫啟動的時候就載入記憶體,當用戶通過身份認證後,就在記憶體中進行相應許可權的存取,這樣,此使用者就可以在資料庫中做許可權範圍內的各種操作了。 mysql 的許可權體系大致分為5個層級: 全域性層級 全域性許可權適用於一個給定伺服器中的所有資料庫。這些許可權儲存在mysql
mysql 檢視,事務,與儲存過程的簡要說明
1.1 檢視 根據SQL語句獲取動態的資料集,併為其命名 # CREATE VIEW 檢視名稱 AS SQL語句 # create view t1 as select * from teacher; # 建立的檢視有自己的表結構,並且如果對檢視的資料進行更改的話,相當
MySQL 檢視使用者授予的許可權
在MySQL中,如何檢視一個使用者被授予了那些許可權呢? 授予使用者的許可權可能分全域性層級許可權、資料庫層級許可權、表層級別許可權、列層級別許可權、子程式層級許可權。具體分類如下: 全域性層級 全域性許可權適用於一個給定伺服器中的所有資料庫。這些許可權儲存在mysql.
mysql 開發進階篇系列 52 許可權與安全(系統四個許可權表的粒度控制關係)
一.概述 接著上篇的許可權介紹,當用戶進行連線的時候,許可權表的存取過程有以下兩個階段: (1) 先從user表中的host,user, authentication_string 這3個欄位中判斷連線的ip,使用者名稱,密碼是否存在於表中,如果存在,則通過身份驗證。 (2) 通過驗證後,則按照以
MySQL: 檢視root使用者的許可權
MySQL: 檢視root使用者的許可權 mysql> show grants for root; +-------------------------------------------+ | Grants for [email protected]%
mysql 開發進階篇系列 55 許可權與安全(安全事項 )
一. 作業系統層面安全 對於資料庫來說,安全很重要,本章將從作業系統和資料庫兩個層面對mysql的安全問題進行了解。 1. 嚴格控制作業系統賬號和許可權 在資料庫伺服器上要嚴格控制作業系統的賬號和許可權,在安裝mysql時就要重視安全問題。 (1) 鎖定mysql使用者。 (2
給mysql的root %使用者新增grant許可權。並給建立的使用者賦予許可權
##登入mysql [[email protected] bin]# ./mysql -u root -p mysql> use mysql ##檢視許可權 mysql> select user,host,grant_priv from
python --- mysql啟動與基本用法
root@kali:~/python/socket/ftp# /etc/init.d/mysql start [ ok ] Starting MySQL database server: mysqld . .. [info] Checking for tab
MySQL檢視 definer & invoker 許可權
1、建立檢視 CREATE VIEW `NewView`AS SELECT `user`.USER_ID, `user`.USER_NAME, department.DEPT_ID, department.DEPT_NAME FROM `user` , departme
MYSQL資料庫實驗(使用者與許可權管理)
實驗: 資料庫安全性實驗 一、實驗目的 建立表和使用者管理 建立表單是資料庫中最基本的操作,也是使用比較頻繁的操作,因此必須掌握SQL的(CREATE語句)的使用方法。而對於使用者的管理操作更是一名合格的DBA所必須掌握的.本實驗就要求掌握並熟悉這兩項基本技能. 使
MySQL Backup mysqldump 常用選項與主要用法
正文 The mysqldump client utility performs logical backups, producing a set of SQL statements that can be executed to reproduce the original database obj
MySQL如何檢視使用者許可權?
檢視MYSQL資料庫中所有使用者 mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user; +----------------------------
ACL許可權-檢視、設定、最大有效許可權mask、遞迴ACL許可權、預設ACL許可權與刪除
設定ACL許可權的命令[[email protected]~]#setfacl 選項 檔名選項:-m 設定ACL許可權-x 刪除指定的ACL許可權-b 刪除所有的ACL許可權-d 設定預設ACL許可權-k 刪除預設ACL許可權-R 遞迴設定ACL許可權格式:setfacl -