授予权限

授予和撤销权限中所述,特定用户可使用带有或不带有可选 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 语句