CREATE ROLE accounting; GRANT USAGE ON LANGUAGE SPL TO accounting; GRANT ALL PRIVILEGES ON receivables TO accounting; GRANT DEFAULT ROLE accounting TO mary; . . . REVOKE DEFAULT ROLE FROM mary;
最后的语句从用户 mary 移除任何她仅通过她的缺省的角色所持有的任何访问权限。在此示例中,该缺省的角色为 accounting,但由于在给定的时间点对于单个用户(或 PUBLIC 组)可仅有一个角色,所以在 REVOKE DEFAULT ROLE 语句中不指定缺省的角色的名称。如果 mary 发出 SET ROLE DEFAULT 语句,则直到授予他某新的缺省的角色之后,它才会有效。
在您执行指定一个或多个用户或 PUBLIC 的 REVOKE DEFAULT ROLE 之后,仅通过缺省的用户,才能取消那些用户持有的任何权限。(但此语句不取消单独地授予了用户的任何权限,或通过另一角色授予了用户的权限,或 PUBLIC 持有的权限。)
在 REVOKE DEFAULT ROLE 成功地取消 user 的缺省的角色之后,user 的缺省的角色成为 NULL,且从系统目录移除该缺省的角色信息。(在此上下文中,NULL 与 NONE 是同义词。)
如果 REVOKE DEFAULT ROLE 指定尚未授予缺省的角色的用户,则不发出警告。
除了 user-list 之外,在 REVOKE DEFAULT ROLE 语句中的 FROM 关键字之后的选项都无效。