ใช้ GRANT SELECT ON database.view TO 'user'@'host'; ให้สิทธิ์อ่าน View เฉพาะเจาะจง
ขั้นตอน
- ดู View ใน Database:
SHOW FULL TABLES IN db_name WHERE TABLE_TYPE LIKE 'VIEW'; - ดู User ที่มีอยู่:
SELECT user, host FROM mysql.user; - Grant สิทธิ์:
GRANT SELECT ON test.viewemployeeidandemployeename TO 'Adam Smith'@'localhost';
ตัวอย่างผลลัพธ์
mysql> SHOW FULL TABLES IN test WHERE TABLE_TYPE LIKE 'VIEW';
+----------------------------------+------------+
| Tables_in_test | Table_type |
+----------------------------------+------------+
| empidandempname_view | VIEW |
| empinfoview | VIEW |
| lookuptable | VIEW |
| view_student | VIEW |
| viewemployeeidandemployeename | VIEW |
+----------------------------------+------------+
Grant สำเร็จ: Query OK, 0 rows affected
หลักการความปลอดภัย: ให้สิทธิ์น้อยที่สุด (Least Privilege) - ให้ SELECT View เท่านั้น ไม่ให้เข้าถึง Table ตรงๆ