簡體   English   中英

用戶未授予mysql數據庫的權限,但仍然可以查詢?

[英]User not granted for mysql database but still can query?

這是我要檢查特定用戶的授權的操作:

mysql> SHOW GRANTS FOR mmuser1;
+-----------------------------------------------------------------------------------------------------------------+
| Grants for mmuser1@%                                                                                   |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'mmuser1'@'%' IDENTIFIED BY PASSWORD '*fesfesfesfes' |
| GRANT ALL PRIVILEGES ON `shopping_mm`.* TO 'mmuser1'@'%'

但是,如果我執行以下操作:

mysql -ummuser1 -p 

我可以訪問並查詢另一個數據庫(體育)。 另外,在執行以下操作時:

SELECT Db,User FROM db;

我可以看到與此用戶相關聯的Db。

Grants表格中怎么可能沒有顯示?

SHOW GRANTS語法中所述

如果僅指定帳戶名的用戶名部分,則使用主機名部分'%'

您可能已使用明確的主機名向用戶授予了權限,例如'mmuser1'@'localhost' 如稍后在同一頁上所述,連接后即可驗證:

要列出授予您用於連接服務器的帳戶的特權,可以使用以下任何語句:

 SHOW GRANTS; SHOW GRANTS FOR CURRENT_USER; SHOW GRANTS FOR CURRENT_USER(); 

或者,只需檢查CURRENT_USER

SELECT CURRENT_USER;

也許您有一個通配符用戶,通常在Mysql中是默認安裝程序?

用戶名或主機的任何或%將允許對數據庫的任何用戶名/主機權限,如下圖所示

您應該刪除這些通常在MySQL中默認的用戶

在此處輸入圖片說明

此圖片是隨MYSQL一起安裝的默認帳戶,創建新用戶后應立即刪除所有這些帳戶,因為它們都不安全,因此它們允許-任何用戶名對數據庫的用戶名訪問權限

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM