ฉันจะเปลี่ยนสิทธิพิเศษสำหรับผู้ใช้ MySQL ที่สร้างไว้แล้วได้อย่างไร


69

ฉันเข้าใจวิธีสร้างผู้ใช้ใหม่ด้วยสิทธิ์ แต่วิธีที่ถูกต้องในการเปลี่ยนสิทธิ์สำหรับผู้ใช้ที่สร้างไว้แล้วคืออะไร

เรากำลังดำเนินการตรวจสอบฐานข้อมูลและผู้ใช้บางรายมีวิธีการเข้าถึงที่จำเป็นมากกว่า นอกจากนี้ฉันไม่ทราบรหัสผ่านสำหรับผู้ใช้ MySQL ส่วนใหญ่ดังนั้นฉันไม่ต้องการลบและสร้างรหัสผ่านใหม่

คำตอบ:


107

ในการแสดงรายการผู้ใช้:

select user,host from mysql.user;

วิธีแสดงสิทธิพิเศษ:

show grants for 'user'@'host';

หากต้องการเปลี่ยนสิทธิ์ให้ยกเลิกก่อน เช่น:

revoke all privileges on *.* from 'user'@'host';

จากนั้นให้สิทธิ์ที่เหมาะสมตามที่ต้องการ:

grant SELECT,INSERT,UPDATE,DELETE ON `db`.* TO 'user'@'host';

ในที่สุดล้าง:

flush privileges;

เอกสาร MySQL เป็นเลิศ:

https://dev.mysql.com/doc/refman/8.0/en/access-control.html


3
ถ้าไม่มีการเพิกถอนมันจะเป็นสิทธิ์ของผู้ได้รับอนุญาต
Sergey

7
เอกสาร mysql ใกล้อ่านไม่ได้คำตอบนี้ดีกว่ามาก
Timo Huovinen

ผมคิดว่า (ยกเลิกสิทธิ์ทั้งหมดบน.จาก 'ใช้' @ 'เจ้าภาพ';) ควรจะเป็น (เพิกถอนทั้งหมดบน.จาก 'ใช้' @ 'เจ้าภาพ';) ขอบคุณ
นิโคลัส

1
คำตอบนี้ผิดธรรมดา "สิทธิ์ล้าง" ไม่ใช้กับสิทธิ์ที่กำหนดด้วยสิทธิ์ กระบวนการข้างต้นส่งผลให้ผู้ใช้ไม่มีสิทธิ์ใด ๆ เลยในขณะที่มีการเรียกใช้การเพิกถอนและการให้สิทธิ์และการล้างแคชของมอบให้โดยไม่มีเหตุผล __ สิ่งนี้จะใช้ได้ถ้าคุณทำแบบสอบถามปกติกับตาราง mysql.user มากกว่า ใช้มอบและหากเซิร์ฟเวอร์ไม่พังหรือหยุดระหว่างการสืบค้น
skullnobrains
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.