一个数据库角色必须具有角色属性才能在交互式分析(Interactive Analytics)里进行操作。本小节将会介绍交互式分析(Interactive Analytics)的角色属性。

  • login privilege

    只有具有LOGIN属性的角色才能被用于一个数据库连接的初始角色名称。一个带有LOGIN属性的角色可以被认为和一个“数据库用户”相同。要创建一个带有登录权限的角色,可使用下述命令中的任何一条:

    CREATE ROLE name LOGIN;
    CREATE USER name;
    说明CREATE USERCREATE ROLE等效,但CREATE USER默认有LOGIN权限,更常用于交互式分析(Interactive Analytics)。
  • superuser status

    一个数据库超级用户会绕开所有权限检查,除了登入的权利。这是一个危险的权限并且应该小心使用,最好用一个不是超级用户的角色来完成您的大部分工作。要创建一个新数据库超级用户,使用以下命令:

    CREATE ROLE name SUPERUSER;
    说明 :上述操作需要超级用户角色才能完成。
  • database creation

    一个角色必须被显式给予权限才能创建数据库(除了超级用户,因为它们会绕开所有权限检查)。要创建这样一个角色,使用以下命令:

    CREATE ROLE name CREATEDB;
  • role creation

    一个角色必须被显式给予权限才能创建更多角色(除了超级用户,因为它们会绕开所有权限检查)。要创建这样一个角色,使用CREATE ROLE name CREATEROLE;。一个带有CREATEROLE权限的角色也可以修改和删除其他角色,还可以授予或回收角色中的成员关系。然而,要创建、修改、删除或修改一个超级用户角色的成员关系,需要以超级用户的身份操作。CREATEROLE不足以完成这一切。

    要移除一个已有的角色,使用相似的命令:

    DROP ROLE name;

    要决定现有角色的集合,检查pg_roles系统目录,例如:

    SELECT rolname FROM pg_roles;

    psql程序的\du元命令也可以用来列出现有角色。

    一旦组角色存在,superuser可以使用GRANTREVOKE增加或者删除成员

    GRANT group_role TO role1;
    REVOKE group_role FROM role1;
  • 关于角色的指令具体参数可参见PostgreSQL的相关命令。