授予权限
如授予和撤销权限中所述,特定用户可使用带有或不带有可选 WITH GRANT OPTION 的 GRANT 语句授予权限,WITH GRANT OPTION 子句允许用户向其他用户授予相同的权限。
-
超级用户可向其他用户授予对所有对象类型的权限。
-
超级用户或对象所有者可向 角色授予权限。然后,被授予角色的用户会获得相应权限。
-
对象所有者可使用可选的 WITH GRANT OPTION 子句向其他用户授予对于对象的权限。
-
用户需要具有对架构的 USAGE 权限以及对于对象的相应权限。
当用户授予一个显式的权限列表时,例如 GRANT INSERT, DELETE, REFERENCES ON applog TO Bob
:
-
只有成功授予了所有角色,GRANT 语句才会成功执行。如果任一授予操作失败,则整个语句将回退。
-
如果用户没有所列权限的授予选项,Vertica 将返回 ERROR。
当用户授予 ALL 权限(例如 GRANT ALL ON applog TO Bob
)时,语句始终会成功执行。Vertica 会授予授予者具有 WITH GRANT OPTION 的所有权限,而略过没有可选 WITH GRANT OPTION 的权限。
例如,如果用户 Bob 删除了具有可选授予选项的对于表 applog 的权限,则仅会向 Bob 授予 DELETE 权限,语句会成功执行:
=> GRANT DELETE ON applog TO Bob WITH GRANT OPTION;GRANT PRIVILEGE
有关详细信息,请参阅 GRANT 语句。