diff options
| author | Andrew Dunstan | 2022-11-28 15:08:42 +0000 |
|---|---|---|
| committer | Andrew Dunstan | 2022-11-28 17:08:14 +0000 |
| commit | b5d6382496f2b8fc31abd92c2654a9a67aca76c6 (patch) | |
| tree | 2f9521bf4654a1643f7987b1dbc1247b81283ff3 /src/include/utils | |
| parent | 1f059a440864021b23b0667e7c0cb664710b660d (diff) | |
Provide per-table permissions for vacuum and analyze.
Currently a table can only be vacuumed or analyzed by its owner or
a superuser. This can now be extended to any user by means of an
appropriate GRANT.
Nathan Bossart
Reviewed by: Bharath Rupireddy, Kyotaro Horiguchi, Stephen Frost, Robert
Haas, Mark Dilger, Tom Lane, Corey Huinker, David G. Johnston, Michael
Paquier.
Discussion: https://postgr.es/m/20220722203735.GB3996698@nathanxps13
Diffstat (limited to 'src/include/utils')
| -rw-r--r-- | src/include/utils/acl.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/include/utils/acl.h b/src/include/utils/acl.h index 406071037e2..e566ff0c730 100644 --- a/src/include/utils/acl.h +++ b/src/include/utils/acl.h @@ -148,15 +148,17 @@ typedef struct ArrayType Acl; #define ACL_CONNECT_CHR 'c' #define ACL_SET_CHR 's' #define ACL_ALTER_SYSTEM_CHR 'A' +#define ACL_VACUUM_CHR 'v' +#define ACL_ANALYZE_CHR 'z' /* string holding all privilege code chars, in order by bitmask position */ -#define ACL_ALL_RIGHTS_STR "arwdDxtXUCTcsA" +#define ACL_ALL_RIGHTS_STR "arwdDxtXUCTcsAvz" /* * Bitmasks defining "all rights" for each supported object type */ #define ACL_ALL_RIGHTS_COLUMN (ACL_INSERT|ACL_SELECT|ACL_UPDATE|ACL_REFERENCES) -#define ACL_ALL_RIGHTS_RELATION (ACL_INSERT|ACL_SELECT|ACL_UPDATE|ACL_DELETE|ACL_TRUNCATE|ACL_REFERENCES|ACL_TRIGGER) +#define ACL_ALL_RIGHTS_RELATION (ACL_INSERT|ACL_SELECT|ACL_UPDATE|ACL_DELETE|ACL_TRUNCATE|ACL_REFERENCES|ACL_TRIGGER|ACL_VACUUM|ACL_ANALYZE) #define ACL_ALL_RIGHTS_SEQUENCE (ACL_USAGE|ACL_SELECT|ACL_UPDATE) #define ACL_ALL_RIGHTS_DATABASE (ACL_CREATE|ACL_CREATE_TEMP|ACL_CONNECT) #define ACL_ALL_RIGHTS_FDW (ACL_USAGE) |
