以下是 ALTER DEFAULT PRIVILEGES 命令的基本语法:
ALTER DEFAULT PRIVILEGES
[ FOR { ROLE role_name | USER user_name | GROUP group_name }
[, ...] ]
[ IN SCHEMA schema_name [, ...] ]
abbreviated_grant_or_revoke [, ...]
其中,role_name、user_name 和 group_name 是数据库角色的名称,schema_name 是模式的名称,而 abbreviated_grant_or_revoke 是授予或撤销的权限。
以下是一些示例:
1. 授予默认权限给特定用户:
ALTER DEFAULT PRIVILEGES FOR USER alice
GRANT SELECT, INSERT, UPDATE ON TABLES TO alice;
这将为用户 alice 授予在创建新表时的默认 SELECT、INSERT 和 UPDATE 权限。
2. 为角色撤销默认权限:
ALTER DEFAULT PRIVILEGES FOR ROLE editors
REVOKE INSERT ON TABLES FROM PUBLIC;
这将为角色 editors 撤销在创建新表时的默认 INSERT 权限。
3. 指定模式的默认权限:
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT USAGE, SELECT ON SEQUENCES TO PUBLIC;
这将为在 public 模式下创建的新序列授予默认的 USAGE 和 SELECT 权限。
请注意,ALTER DEFAULT PRIVILEGES 只会影响之后创建的对象,而不会修改已存在的对象的权限。对于已存在的对象,你需要使用 GRANT 或 REVOKE 命令来设置或更改权限。
详细信息和更多示例可以在 [PostgreSQL 官方文档](https://www.postgresql.org/docs/current/sql-alterdefaultprivileges.html) 中找到。
转载请注明出处:http://www.zyzy.cn/article/detail/8603/PostgreSQL