Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

จะป้องกันไม่ให้ผู้ใช้เข้าถึงสคีมาเฉพาะใน MySQL ได้อย่างไร


เพื่อป้องกันไม่ให้ผู้ใช้เข้าถึงสคีมาเฉพาะ คุณต้องใช้คำสั่งลบ ต่อไปนี้เป็นไวยากรณ์ -

ลบออกจาก mysql.db โดยที่ Db IN("yourSpecificSchema","yourSpecificSchema\_%") AND User ="yourUserName" AND Host ="yourHostName";

ให้เราใช้ไวยากรณ์ข้างต้นเพื่อป้องกันไม่ให้ผู้ใช้เข้าถึงสคีมาเฉพาะ ก่อนอื่น ให้เราแสดงผู้ใช้และโฮสต์ทั้งหมดจากตาราง MySQL.user

mysql> เลือกผู้ใช้, โฮสต์จาก MySQL.user;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+--------------------------------------+| ผู้ใช้ | โฮสต์ |+-----------------------------------------------+| บ๊อบ | % || ผู้ใช้2 | % || mysql.infoschema | % || mysql.session | % || mysql.sys | % || ราก | % || @ชื่อผู้ใช้@ | localhost || อดัม สมิธ | localhost || คริส | localhost || เดวิด | localhost || เจมส์ | localhost || จอห์น | localhost || จอห์น โด | localhost || ผู้ใช้1 | localhost || น | localhost || hbstudent | localhost || mysql.infoschema | localhost || mysql.session | localhost |+--------------------------+-----------+18 แถวในชุด (0.00 วินาที)

ที่นี่ เราจะป้องกันไม่ให้ผู้ใช้ 'Chris' ที่มีชื่อโฮสต์ 'localhost' เข้าถึง schema เฉพาะที่มีชื่อ 'sample' -

mysql> ลบออกจาก mysql.db โดยที่ Db IN("sample","sample\_%") AND User="Chris" AND Host="localhost";Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที) 

หลังจากดำเนินการค้นหาข้างต้น คุณต้องใช้ FLUSH

mysql> FLUSH PRIVILEGES ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.06 วินาที)