创建用户并授予以特定表的select权限,如GRANT SELECT ON mydb.users;2. 使用REVOKE撤销INSERT、UPDATE、delete等多余权限;3. 限定用户登录来源,如’localhost’或内网IP段;4. 通过SHOW GRANTS验证权限设置,确保用户仅能访问指定表。
在 mysql 中限制用户访问特定表,主要通过权限管理来实现。你可以创建用户并授予其对某些表的有限权限,从而达到控制访问的目的。
1. 创建用户并限制表级权限
使用 GRANT 语句为用户分配对特定数据库中特定表的操作权限,比如 SELECT、INSERT、UPDATE、DELETE 等。
例如:创建一个只能访问
mydb.users
表的只读用户:
-
CREATE USER 'user_read'@'localhost' IDENTIFIED BY 'password123';
-
GRANT SELECT ON mydb.users TO 'user_read'@'localhost';
-
FLUSH PRIVILEGES;
这样该用户就只能查询
users
表,无法进行修改或访问其他表。
2. 撤销不必要的权限
确保用户没有被意外赋予更高权限。可以使用 REVOKE 来移除权限。
-
REVOKE INSERT, UPDATE, DELETE ON mydb.users FROM 'user_read'@'localhost';
如果你之前授了过多权限,及时回收是必要的安全措施。
3. 限制访问来源(主机)
在定义用户时,指定其登录来源(如 ‘user’@’localhost’),可防止从任意 IP 连接。
例如:
-
'user_read'@'192.168.1.%'
—— 只允许来自内网的访问
-
'user_read'@'%'
—— 允许任意主机(不推荐,除非必要)
4. 查看用户权限
使用以下命令检查用户实际拥有的权限:
-
SHOW GRANTS for 'user_read'@'localhost';
这有助于确认权限设置是否符合预期。
基本上就这些。只要合理使用 GRANT、REVOKE 和用户主机限制,就能有效控制 MySQL 用户对表的访问。
暂无评论内容