如何为SQL数据库中的特定表授予SELECT查询权限
MySQL 为指定单表授予SELECT权限的正确写法
你之前两种写法无法执行的原因如下:
- 第一种写法仅给库名添加了反引号转义,表名未做标识符转义,当表名存在特殊字符或与SQL关键字冲突时会出现解析错误
- 第二种写法将库名和表名放在同一组反引号内,SQL引擎会把整段字符串识别为单个对象名称,既匹配不到对应数据库,也匹配不到目标表,必然执行失败。
MySQL 对多级标识符的转义规则是:每一级的标识符需要单独用反引号包裹,层级之间用.分隔。针对你的场景,正确的授权语句为:
GRANT SELECT ON `web01\_database\_home`.`test_table_1` TO `user-1_ert`@`%`;
补充说明:授权语句执行后如果权限未即时生效,可以执行以下命令刷新权限表,无需重启数据库服务:
FLUSH PRIVILEGES;
内容的提问来源于stack exchange,提问作者PeterBe
相关产品推荐
相关产品推荐

