GRANT 语句

使用 GRANT 语句来给用户和其他角色指定访问权限和角色。拥有 DBSECADM 角色的用户可使用此语句来从基于标签的访问控制(LBAC)安全规则指定用户安全标签和豁免。

语法

TO 选项

元素 描述 限制 语法
grantor 用户的授权标识符,该用户可使用 REVOKE 来取消此 GRANT 语句的作用。如果省略 AS 子句,则缺省值是发出此语句的用户的登录名 必须为有效的 user 名称(非 role 名称)。在 Windows™ 上,user 名称不可超过 20 字节。在其他平台上,该限制为 32 字节。 所有者名称
role 现有角色的名称,您将一个或多个访问权限授予该角色,或您指定另一角色给该角色 在该数据库中必须存在 所有者名称
user 用户的授权标识符,您将一个或多个访问权限授予该用户,或您将指定角色给该用户 grantor 所有者名称

用法

GRANT 语句扩展到其他用户特定的自主访问权限或 LBAC 标签和豁免,这些通常仅归于 DBA 或对象的创建者。后续的 GRANT 语句不影响已授予用户的那些权限。

您可使用 GRANT 语句进行如下操作:
  • 授权其他人来使用或管理您创建的数据库
  • 允许其他人来查看、改变或删除您创建的表、同义词、视图或序列对象
  • 允许其他人来使用数据类型或 SPL 语言,或来执行您创建的用户定义的例程(UDR)
  • 将角色及其权限分配给用户、给 PUBLIC,或给其他角色
  • 将缺省角色分配给一个或多个用户或给 PUBLIC
  • 如果您具有 DBSECADM 角色,则从 LBAC 安全策略的规则将 LBAC 安全标签或豁免分配给用户,
您可将权限授予先前创建的角色或授予内嵌角色。您可将角色授予 PUBLIC、授予个别用户,或授予另一角色。

如果您用引号括起 grantor roleuser,则名称是区分大小写的,并完全按您输入的形式存储。在符合 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 语句

1 GBase 8s 扩展
2 请参阅 数据库级权限
3 请参阅 表级权限
4 请参阅 角色名称
5 请参阅 例程级权限
6 请参阅 代理用户属性(UNIX、Linux)
7 请参阅 序列级权限
8 请参阅 类型级权限
9 请参阅 语言级权限
10 请参阅 安全管理选项