第四十八章 SQL命令 GRANT(二)
GRANT COLUMN-权限
列权限授予用户或角色对指定表或视图上的指定列列表的指定权限。这允许访问某些表列,而不允许访问同一表的其他列。这提供了比GRANT OBJECT-PRIVICATION选项更具体的访问控制,后者定义了整个表或视图的权限。向被授权者授予权限时,应为表授予表级权限或列级权限,但不能同时授予两者。SELECT、INSERT、UPDATE和REFERENCES权限可用于授予对单个列中数据的访问权限。
对具有GRANT OPTION的表具有SELECT、INSERT、UPDATE或REFERENCES对象权限的用户可以向其他用户授予该表的列的相同类型的列权限。
可以指定单个列,也可以指定逗号分隔的列列表。列列表必须用括号括起来。列名可以按任意顺序指定,允许重复。将COLUMN特权授予已具有该特权的列不起作用。
以下示例授予两列的UPDATE权限:
GRANT UPDATE(Name,FavoriteColors) ON Sample.Person TO Deborah
可以授予表或视图的列特权。可以向任何类型的被授权者授予列权限,包括用户列表、角色列表、*和_PUBLIC。但是,不能将星号(*)通配符用于权限、字段名或表名。
如果用户将新记录插入到表中,则只会将数据插入到已授予列权限的那些字段中。