|
|
|
@ -1,7 +1,7 @@ |
|
|
|
|
CREATE EXTENSION test_pg_db_role_setting; |
|
|
|
|
CREATE USER super_user SUPERUSER; |
|
|
|
|
CREATE USER regular_user; |
|
|
|
|
\c - regular_user |
|
|
|
|
CREATE USER regress_super_user SUPERUSER; |
|
|
|
|
CREATE USER regress_regular_user; |
|
|
|
|
\c - regress_regular_user |
|
|
|
|
-- successfully set a placeholder value |
|
|
|
|
SET test_pg_db_role_setting.superuser_param = 'aaa'; |
|
|
|
|
-- module is loaded, the placeholder value is thrown away |
|
|
|
@ -24,24 +24,24 @@ SHOW test_pg_db_role_setting.user_param; |
|
|
|
|
user_param_value |
|
|
|
|
(1 row) |
|
|
|
|
|
|
|
|
|
\c - regular_user |
|
|
|
|
\c - regress_regular_user |
|
|
|
|
-- fail, not privileges |
|
|
|
|
ALTER ROLE regular_user SET test_pg_db_role_setting.superuser_param = 'aaa'; |
|
|
|
|
ALTER ROLE regress_regular_user SET test_pg_db_role_setting.superuser_param = 'aaa'; |
|
|
|
|
ERROR: permission denied to set parameter "test_pg_db_role_setting.superuser_param" |
|
|
|
|
ALTER ROLE regular_user SET test_pg_db_role_setting.user_param = 'bbb'; |
|
|
|
|
ALTER ROLE regress_regular_user SET test_pg_db_role_setting.user_param = 'bbb'; |
|
|
|
|
ERROR: permission denied to set parameter "test_pg_db_role_setting.user_param" |
|
|
|
|
-- success for USER SET parameters |
|
|
|
|
ALTER ROLE regular_user SET test_pg_db_role_setting.superuser_param = 'aaa' USER SET; |
|
|
|
|
ALTER ROLE regular_user SET test_pg_db_role_setting.user_param = 'bbb' USER SET; |
|
|
|
|
\drds regular_user |
|
|
|
|
List of settings |
|
|
|
|
Role | Database | Settings | User set |
|
|
|
|
--------------+----------+---------------------------------------------+---------- |
|
|
|
|
regular_user | | test_pg_db_role_setting.superuser_param=aaa+| t + |
|
|
|
|
| | test_pg_db_role_setting.user_param=bbb | t |
|
|
|
|
ALTER ROLE regress_regular_user SET test_pg_db_role_setting.superuser_param = 'aaa' USER SET; |
|
|
|
|
ALTER ROLE regress_regular_user SET test_pg_db_role_setting.user_param = 'bbb' USER SET; |
|
|
|
|
\drds regress_regular_user |
|
|
|
|
List of settings |
|
|
|
|
Role | Database | Settings | User set |
|
|
|
|
----------------------+----------+---------------------------------------------+---------- |
|
|
|
|
regress_regular_user | | test_pg_db_role_setting.superuser_param=aaa+| t + |
|
|
|
|
| | test_pg_db_role_setting.user_param=bbb | t |
|
|
|
|
(1 row) |
|
|
|
|
|
|
|
|
|
\c - regular_user |
|
|
|
|
\c - regress_regular_user |
|
|
|
|
-- successfully set placeholders |
|
|
|
|
SHOW test_pg_db_role_setting.superuser_param; |
|
|
|
|
test_pg_db_role_setting.superuser_param |
|
|
|
@ -75,21 +75,21 @@ SHOW test_pg_db_role_setting.user_param; |
|
|
|
|
bbb |
|
|
|
|
(1 row) |
|
|
|
|
|
|
|
|
|
\c - super_user |
|
|
|
|
ALTER ROLE regular_user SET test_pg_db_role_setting.superuser_param = 'aaa'; |
|
|
|
|
\drds regular_user |
|
|
|
|
List of settings |
|
|
|
|
Role | Database | Settings | User set |
|
|
|
|
--------------+----------+---------------------------------------------+---------- |
|
|
|
|
regular_user | | test_pg_db_role_setting.superuser_param=aaa+| f + |
|
|
|
|
| | test_pg_db_role_setting.user_param=bbb | t |
|
|
|
|
\c - regress_super_user |
|
|
|
|
ALTER ROLE regress_regular_user SET test_pg_db_role_setting.superuser_param = 'aaa'; |
|
|
|
|
\drds regress_regular_user |
|
|
|
|
List of settings |
|
|
|
|
Role | Database | Settings | User set |
|
|
|
|
----------------------+----------+---------------------------------------------+---------- |
|
|
|
|
regress_regular_user | | test_pg_db_role_setting.superuser_param=aaa+| f + |
|
|
|
|
| | test_pg_db_role_setting.user_param=bbb | t |
|
|
|
|
(1 row) |
|
|
|
|
|
|
|
|
|
\c - regular_user |
|
|
|
|
\c - regress_regular_user |
|
|
|
|
-- don't have a priviledge to change superuser value to user set one |
|
|
|
|
ALTER ROLE regular_user SET test_pg_db_role_setting.superuser_param = 'ccc' USER SET; |
|
|
|
|
ALTER ROLE regress_regular_user SET test_pg_db_role_setting.superuser_param = 'ccc' USER SET; |
|
|
|
|
ERROR: permission denied to set parameter "test_pg_db_role_setting.superuser_param" |
|
|
|
|
\c - super_user |
|
|
|
|
\c - regress_super_user |
|
|
|
|
SELECT load_test_pg_db_role_setting(); |
|
|
|
|
load_test_pg_db_role_setting |
|
|
|
|
------------------------------ |
|
|
|
@ -97,18 +97,18 @@ SELECT load_test_pg_db_role_setting(); |
|
|
|
|
(1 row) |
|
|
|
|
|
|
|
|
|
-- give the privilege to set SUSET param to the regular user |
|
|
|
|
GRANT SET ON PARAMETER test_pg_db_role_setting.superuser_param TO regular_user; |
|
|
|
|
\c - regular_user |
|
|
|
|
ALTER ROLE regular_user SET test_pg_db_role_setting.superuser_param = 'ccc'; |
|
|
|
|
\drds regular_user |
|
|
|
|
List of settings |
|
|
|
|
Role | Database | Settings | User set |
|
|
|
|
--------------+----------+---------------------------------------------+---------- |
|
|
|
|
regular_user | | test_pg_db_role_setting.superuser_param=ccc+| f + |
|
|
|
|
| | test_pg_db_role_setting.user_param=bbb | t |
|
|
|
|
(1 row) |
|
|
|
|
|
|
|
|
|
\c - regular_user |
|
|
|
|
GRANT SET ON PARAMETER test_pg_db_role_setting.superuser_param TO regress_regular_user; |
|
|
|
|
\c - regress_regular_user |
|
|
|
|
ALTER ROLE regress_regular_user SET test_pg_db_role_setting.superuser_param = 'ccc'; |
|
|
|
|
\drds regress_regular_user |
|
|
|
|
List of settings |
|
|
|
|
Role | Database | Settings | User set |
|
|
|
|
----------------------+----------+---------------------------------------------+---------- |
|
|
|
|
regress_regular_user | | test_pg_db_role_setting.superuser_param=ccc+| f + |
|
|
|
|
| | test_pg_db_role_setting.user_param=bbb | t |
|
|
|
|
(1 row) |
|
|
|
|
|
|
|
|
|
\c - regress_regular_user |
|
|
|
|
-- successfully set placeholders |
|
|
|
|
SHOW test_pg_db_role_setting.superuser_param; |
|
|
|
|
test_pg_db_role_setting.superuser_param |
|
|
|
|