mysql授权单个表权限
封面图
•
2025-11-18
•
MySQL
190
0
0
0
在 MySQL 中,你可以使用 `GRANT` 语句来为用户授权对**单个表**的特定权限(如 SELECT、INSERT、UPDATE、DELETE 等)。下面是具体的语法和示例。 --- ### ✅ 授权单个表权限的语法: ```sql GRANT 权限类型 ON 数据库名.表名 TO '用户名'@'主机名'; ``` - **权限类型**:可以是 `SELECT`, `INSERT`, `UPDATE`, `DELETE`, `CREATE`, `DROP`, `ALTER` 等。 - **数据库名.表名**:指定要授权的表。 - **用户名@主机名**:指定用户和允许连接的主机(如 `'user'@'localhost'` 或 `'user'@'%'`)。 --- ### 🔧 示例 假设你有一个数据库 `mydb`,其中有一个表 `users`,你想让用户 `app_user` 只能查询这个表: ```sql GRANT SELECT ON mydb.users TO 'app_user'@'localhost'; ``` 如果你还想让用户有插入权限: ```sql GRANT INSERT, SELECT ON mydb.users TO 'app_user'@'localhost'; ``` --- ### 📌 注意事项: 1. **刷新权限**: 在执行完 `GRANT` 后,最好运行以下命令使权限生效: ```sql FLUSH PRIVILEGES; ``` 2. **用户必须存在**: 如果用户不存在,你需要先创建用户: ```sql CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'password'; ``` 3. **权限作用范围**: - 如果你只授权一个表,用户将无法访问该数据库中的其他表。 - 如果需要授权多个表,可以重复使用 `GRANT` 命令或用逗号分隔多个表名。 --- ### 🔄 撤销权限 如果你想撤销某个用户的某个表权限,可以用 `REVOKE` 命令: ```sql REVOKE SELECT ON mydb.users FROM 'app_user'@'localhost'; ``` --- 如果你告诉我具体的需求(比如哪个用户、哪个表、什么权限),我可以帮你写出准确的 SQL 语句。
上一篇:
MySQL中 cross join
下一篇:
MySQL启用SSL连接
标题录入,一次不能超过6条
留言
评论