MySQL 授予普通用戶PROCESS許可權

来源:http://www.cnblogs.com/kerrycode/archive/2017/08/24/7421777.html
-Advertisement-
Play Games

在MySQL中如何給普通用戶授予查看所有用戶線程/連接的許可權,當然,預設情況下show processlist是可以查看當前用戶的線程/連接的。 mysql> grant process on MyDB.* to test; ERROR 1221 (HY000): Incorrect usage o... ...


 

 

在MySQL中如何給普通用戶授予查看所有用戶線程/連接的許可權,當然,預設情況下show processlist是可以查看當前用戶的線程/連接的。

 

 

mysql> grant process on MyDB.* to test;

ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES

 

第一次授予這樣的許可權,錯誤原因是process許可權是一個全局許可權,不可以指定在某一個庫上(個人測試庫為MyDB),所以,把授權語句更改為如下即可:

 

mysql> grant process on *.* to test;

Query OK, 0 rows affected (0.01 sec)

 

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

 

 

 

如果不給擁有授予PROESS許可權 ,show processlist命令只能看到當前用戶的線程,而授予了PROCESS許可權後,使用show  processlist就能看到所有用戶的線程。官方文檔的介紹如下:

 

SHOW PROCESSLIST shows you which threads are running. You can also get this information from the INFORMATION_SCHEMA PROCESSLIST table or the mysqladmin processlist command. If you have the PROCESS privilege, you can see all threads. Otherwise, you can see only your own threads (that is, threads associated with the MySQL account that you are using). If you do not use the FULL keyword, only the first 100 characters of each statement are shown in the Info field.

 

 

我們先創建下麵賬號test2,然後測試如下:

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> grant select,insert,update,delete on MyDB.* to test2@'%' identified by 'test2';
Query OK, 0 rows affected (0.00 sec)
 
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

 

 

 

mysql> select user();
+-----------------+
| user()          |
+-----------------+
| test2@localhost |
+-----------------+
1 row in set (0.00 sec)
 
mysql> show processlist;
+----+-------+-----------+------+---------+------+-------+------------------+
| Id | User  | Host      | db   | Command | Time | State | Info             |
+----+-------+-----------+------+---------+------+-------+------------------+
| 25 | test2 | localhost | NULL | Query   |    0 | init  | show processlist |
+----+-------+-----------+------+---------+------+-------+------------------+
1 row in set (0.00 sec)
 
mysql> show full processlist;
+----+-------+-----------+------+---------+------+-------+-----------------------+
| Id | User  | Host      | db   | Command | Time | State | Info                  |
+----+-------+-----------+------+---------+------+-------+-----------------------+
| 25 | test2 | localhost | NULL | Query   |    0 | init  | show full processlist |
+----+-------+-----------+------+---------+------+-------+-----------------------+
1 row in set (0.01 sec)
 
mysql> 

 

 

clip_image001[4]

 

 


 

然後我們給用戶test2授予process許可權, 如下所示,再測試show processlist 就能看到所有用戶的線程/連接信息(如果是之前已經建立連接的會話,必須退出重新登錄,否則依然只能看到當前用戶的線程。

 

mysql> grant process on *.* to test2;

Query OK, 0 rows affected (0.00 sec)

 

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 

mysql> show processlist;
+----+-------+-----------+------+---------+------+-------+------------------+
| Id | User  | Host      | db   | Command | Time | State | Info             |
+----+-------+-----------+------+---------+------+-------+------------------+
| 19 | root  | localhost | NULL | Sleep   |   16 |       | NULL             |
| 22 | test  | localhost | MyDB | Sleep   |  738 |       | NULL             |
| 24 | test  | localhost | NULL | Sleep   |  692 |       | NULL             |
| 25 | test2 | localhost | NULL | Sleep   |  531 |       | NULL             |
| 27 | test2 | localhost | NULL | Query   |    0 | init  | show processlist |
+----+-------+-----------+------+---------+------+-------+------------------+
5 rows in set (0.00 sec)
 
mysql> 

 

 

The PROCESS privilege pertains to display of information about the threads executing within the server (that is, information about the statements being executed by sessions). The privilege enables use of SHOW PROCESSLIST or mysqladmin processlist to see threads belonging to other accounts; you can always see your own threads. The PROCESS privilege also enables use of SHOW ENGINE.

 

 

如上官方文檔所說,如果給用戶授予了PROCESS許可權, 那麼用戶就擁有了使用SHOW ENGINES命令的許可權,如下所示:

 

 

mysql> select user();
+----------------+
| user()         |
+----------------+
| test@localhost |
+----------------+
1 row in set (0.00 sec)
 
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
	   

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、何為PXE Preboot Eexcution Environment,簡稱PXE,暫且翻譯為預啟動執行環境。用一句話來概括PXE的功能——它能通過網路為電腦(特別是“裸機”)安裝操作系統。在PXE下,“裸機”的BIOS和網卡能通過網路來引導啟動自身,而不是通過傳統的磁碟引導方式。PXE的這種 ...
  • 前言:在Linux下學習了很久,可是操作卻還是小學生一樣,唉,於是把整理的linux下vim的命令分享給大家,有了這些快捷鍵相信相信大家在linux下學習都會得心應手的。 一、移動游標 1、左移h、右移l、下移j、上移k 2、向下翻頁ctrl + f,向上翻頁ctrl + b 3、向下翻半頁ctrl ...
  • 用dba用戶登錄plsql,執行 第一步,建立表空間 CREATE SMALLFILE TABLESPACE "ASSETS" LOGGING DATAFILE 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\SDZC0216\ASSETS1.ora' SIZE 500M AUT ...
  • 由於防火牆問題,TCP keep alive 問題,以及 MySQL 自身的參數問題這三個在使用中比較常見,所以今天就分享下自己找到的排查方法。 今天先聊一聊防火牆問題 大多數人在第一次創建 MySQL database on Azure 實例之後便開始嘗試連接。但是往往遇到的結果不是連接成功而是如 ...
  • 用 insert 添加用戶時,可能會報錯: ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value my-default.ini中有一條語句: sql_mode=NO_ENGINE_SUBSTITUTION,STRICT ...
  • 一、搭建Mongodb 副本集 副本集中有三個角色: 主節點:所有副節點的數據均來自於主節點,並且只能對主節點進行讀寫操作。副節點:數據來自於主節點,可以進行讀取操作,但是不能進行寫操作。仲裁者:不含數據也不與客戶端交流,只在選舉主節點的時候進行投票。 Mongodb最多支持50個副本集成員以及最多 ...
  • 業務場景: 某天truncate大量表時遇到錯誤ORA-O2266:表中的唯一/主鍵被啟用的外鍵引用,不想看ER圖來禁用大量複雜約束,所以研發了三種套路... 一. 最偷懶套路 如果要一次性導出很多表, 懶得看ER圖, 可以用巧辦法: PLSQL developer: Tools Export ta ...
  • select * from 表名 as of timestamp to_timestamp('2016-02-23 23:59:59','yyyy-mm-dd hh24:mi:ss') ; 該語句表示查詢某一個時間點時該表的數據,通過修改時間,你可以查詢刪除之前時的數據。篩選出來重新插入即可。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...