若要将部门表Demp中name列的修改权限赋予用户Ming,并允许Ming将该权限授予他人,实现的SQL语句如下:
GRANT(UPDATE(name))ON TABLE Demp TO Ming(WITH GRANT OPTION)
在数据库权限管理中,GRANT语句用于为用户分配各类操作权限,针对表的列级权限授予,可通过“操作权限(列名)”的形式指定,比如UPDATE(列名)可赋予用户对应列的修改权限,SELECT(列名)、INSERT(列名)则分别对应单列的查询、插入权限,需要注意的是,ALL PRIVILEGES权限通常针对整张表或数据库层级,一般不用于单列授权。若要允许被授权用户将已获得的权限转授给其他用户,需在GRANT语句末尾添加WITH GRANT OPTION子句;同时要区分易混淆的语法元素,CASCADE常用于REVOKE语句中实现权限的级联收回,WITH CHECK OPTION是视图定义时用于约束插入或更新数据合法性的子句,而FOR ALL并非GRANT语句的合法语法成分。
本题考察的是数据库授权(GRANT语句)的使用。
在数据库安全管理中,管理员可以通过 GRANT 语句将某种操作权限赋予指定用户,同时可以指定是否允许该用户再将该权限授予他人。
问题1:
题目要求赋予用户对表 Demp 的 name 列的修改权限。
A选项 SELECT(name):表示查询权限,并非修改,错误。
B选项 UPDATE(name):表示对指定列具有修改权限,符合题意,正确。
C选项 INSERT(name):表示插入权限,不是修改,错误。
D选项 ALL PRIVILEGES(name):赋予所有权限,但SQL标准中 ALL PRIVILEGES 通常是针对整个表或数据库,不是针对单列,错误。
选择选项 B。
问题2:
题目要求允许 Ming 将该权限再授予他人,需要使用 WITH GRANT OPTION。
A选项 FOR ALL:不是 GRANT 语法的一部分,错误。
B选项 CASCADE:通常用于 REVOKE 语句中的权限收回,不适用,错误。
C选项 WITH GRANT OPTION:表示用户不仅获得权限,还能将该权限授予他人,正确。
D选项 WITH CHECK OPTION:用于视图定义,保证用户插入或更新的数据满足视图条件,不适用,错误。
选择选项 C。
