MST

星途 面试题库

面试题:MySQL中如何为用户授予特定数据库表的部分列的查询权限

假设存在数据库test,表user_info,包含列id、name、age、address。现在要为用户test_user授予仅能查询id和name列的权限,应该如何操作?请写出具体的SQL语句。
15.4万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试

在MySQL中,可以使用以下SQL语句:

GRANT SELECT (id, name) ON test.user_info TO 'test_user'@'%';
FLUSH PRIVILEGES;

上述语句中,GRANT SELECT (id, name) 表示授予对 idname 列的查询权限,ON test.user_info 表示作用于 test 数据库下的 user_info 表,TO 'test_user'@'%' 表示授予给 test_user 用户,% 表示该用户可以从任何主机连接,最后 FLUSH PRIVILEGES 用于刷新权限使其立即生效。

不同数据库语法略有差异,例如在Oracle中:

-- 首先创建用户(如果用户不存在)
CREATE USER test_user IDENTIFIED BY password;

-- 授予对指定列的查询权限
GRANT SELECT (id, name) ON test.user_info TO test_user;

这里假设 passwordtest_user 用户的密码,test 为用户名(如果是当前登录用户可省略用户名部分)。