授予和撤销权限

Vertica 支持通过 GRANTREVOKE 语句(例如,GRANT(架构)REVOKE(架构)GRANT(表)REVOKE(表) 等等)来控制用户对数据库对象的访问。通常,超级用户会在创建数据库后不久创建用户角色,然后使用 GRANT 语句为所创建的用户和角色分配权限。

在适用的情况下,GRANT 语句需要对象架构的 USAGE 权限。以下用户可以授予和撤销权限:

  • 超级用户:所有数据库对象(包括数据库本身)的所有权限

  • 非超级用户:他们拥有的对象的所有权限

  • 包括 WITH GRANT OPTION 的权限的被授予者:对该对象的相同权限

在以下示例中,dbadmin(具有超级用户权限)创建用户 Carol。随后的 GRANT 语句授予 Carol 架构和表权限:

  • 对架构的 CREATE 和 USAGE 权限 PUBLIC

  • 对表 public.applog 的 SELECT、INSERT 和 UPDATE 权限。此 GRANT 语句还包括 WITH GRANT OPTION。这使得 Carol 可以将此表上的相同权限授予其他用户 — 在本例中,将 SELECT 权限授予用户 Tom

=> CREATE USER Carol;
CREATE USER
=> GRANT CREATE, USAGE ON SCHEMA PUBLIC to Carol;
GRANT PRIVILEGE
=> GRANT SELECT, INSERT, UPDATE ON TABLE public.applog TO Carol WITH GRANT OPTION;
GRANT PRIVILEGE
=> GRANT SELECT ON TABLE public.applog TO Tom;
GRANT PRIVILEGE