ผู้ใช้ MySQL คนใดที่สามารถเข้าถึงฐานข้อมูลได้


13

ฉันจะบอกได้อย่างไรว่าผู้ใช้ MySQL รายใดที่สามารถเข้าถึงฐานข้อมูลและสิทธิพิเศษใดบ้างที่พวกเขามี

ฉันดูเหมือนจะสามารถรับข้อมูลนี้ได้จาก phpMyAdmin เมื่อฉันคลิก "สิทธิ์" . .

                 Users having access to "mydatabase"
User     Host       Type               Privileges              Grant
myuser1  %          database-specific  ALL PRIVILEGES          Yes
root     localhost  global             ALL PRIVILEGES          Yes
myuser2  %          database-specific  SELECT, INSERT, UPDATE  No

. . . แต่ฉันต้องการทราบวิธีดำเนินการค้นหานี้จากบรรทัดคำสั่ง

(phpMyAdmin มักจะแสดงให้ฉันเห็นไวยากรณ์ SQL ของคำสั่งที่กำลังดำเนินการ แต่ฉันไม่เห็นมันในกรณีนี้)

โปรดทราบว่าฉันไม่ได้ถามว่าผู้ใช้รายใดให้สิทธิ์ (เช่น "SHOW GRANTS for myuser1") แต่ให้ชื่อของฐานข้อมูลฉันจะทราบได้อย่างไรว่าผู้ใช้ MySQL คนใดที่เข้าถึงฐานข้อมูลนั้นและสิทธิ์ที่พวกเขามี ? โดยพื้นฐานแล้วฉันจะรับแผนภูมิด้านบนจากบรรทัดคำสั่งได้อย่างไร

คำตอบ:



8
SELECT * FROM mysql.db WHERE Db = '<database name in LC>';

ขอบคุณ คำตอบนี้ดูเหมือนจะแสดงผลข้อมูลดิบเดียวกันกับแผนภูมิในคำถาม . . แต่ในรูปแบบที่อ่านได้น้อย ฉันเดาว่าการนำเสนอข้อมูลในรูปแบบเดียวกันเป็นการออกกำลังกายสำหรับผู้อ่าน . . ;)
Philip Durbin

2

คุณอาจลองทำสิ่งนี้ควรให้ความสามารถในการอ่านที่ดีที่สุด:

select db 'DATABASE', host HOST, user USER from mysql.db where db = '<databasename>';

สิ่งที่จดจำได้มากขึ้นสำหรับ CLI:

select db,host,user from mysql.db;
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.