使用 GRANT 语句来给用户和其他角色指定访问权限和角色。拥有 DBSECADM 角色的用户可使用此语句来从基于标签的访问控制(LBAC)安全规则指定用户安全标签和豁免。
GRANT 语句扩展到其他用户特定的自主访问权限或 LBAC 标签和豁免,这些通常仅归于 DBA 或对象的创建者。后续的 GRANT 语句不影响已授予用户的那些权限。
如果您用引号括起 grantor、 role 或 user,则名称是区分大小写的,并完全按您输入的形式存储。在符合 ANSI 的数据库中,如果您不使用引号做定界符,则以大写字母存储该名称。
仅在 Windows 上,数据库服务器不支持包含多于 20 字符的 user 名称。
您授予的权限保持有效直到您以 REVOKE 语句取消为止。仅权限的 grantor 可调用那个权限。grantor 是发出 GRANT 语句的人,除非 AS grantor 子句将调用那些权限的权利转给其他用户。
仅对象的所有者或以 WITH GRANT OPTION 关键字明确地授予权限的用户可授予对象的权限。有 DBA 权限还不够。然而,作为 DBA,您可通过使用 AS grantor 子句代表另一用户授予权限。对于数据库对象的权限,其所有者不是操作系统识别的用户(例如,用户 gbasedbt),AS grantor 子句是有用的。
关键字 PUBLIC 将特定的的权限或角色扩展到 PUBLIC 组或连接到该数据库的所有用户。如果您想要将 PUBLIC 已持有的权限仅限制到用户的子集,则必须首先从 PUBLIC 取消那些权限。
要为已由表达式分段的表的一个或多个分段授予权限,请参阅 GRANT FRAGMENT 语句。