mirror of https://github.com/citusdata/citus.git
Fixes test errors
parent
2e3dcf4bd2
commit
c949800702
|
@ -1,159 +0,0 @@
|
||||||
CREATE SCHEMA grant_role2pc;
|
|
||||||
SET search_path TO grant_role2pc;
|
|
||||||
set citus.enable_create_database_propagation to on;
|
|
||||||
CREATE DATABASE grant_role2pc_db;
|
|
||||||
\c grant_role2pc_db
|
|
||||||
SHOW citus.main_db;
|
|
||||||
citus.main_db
|
|
||||||
---------------------------------------------------------------------
|
|
||||||
regression
|
|
||||||
(1 row)
|
|
||||||
|
|
||||||
SET citus.superuser TO 'postgres';
|
|
||||||
CREATE USER grant_role2pc_user1;
|
|
||||||
CREATE USER grant_role2pc_user2;
|
|
||||||
CREATE USER grant_role2pc_user3;
|
|
||||||
CREATE USER grant_role2pc_user4;
|
|
||||||
CREATE USER grant_role2pc_user5;
|
|
||||||
CREATE USER grant_role2pc_user6;
|
|
||||||
CREATE USER grant_role2pc_user7;
|
|
||||||
\c grant_role2pc_db
|
|
||||||
--test with empty superuser
|
|
||||||
SET citus.superuser TO '';
|
|
||||||
grant grant_role2pc_user1 to grant_role2pc_user2;
|
|
||||||
ERROR: No superuser role is given for Citus main database connection
|
|
||||||
HINT: Set citus.superuser to a superuser role name
|
|
||||||
SET citus.superuser TO 'postgres';
|
|
||||||
grant grant_role2pc_user1 to grant_role2pc_user2 with admin option granted by CURRENT_USER;
|
|
||||||
\c regression
|
|
||||||
select result FROM run_command_on_all_nodes(
|
|
||||||
$$
|
|
||||||
SELECT array_to_json(array_agg(row_to_json(t)))
|
|
||||||
FROM (
|
|
||||||
SELECT member::regrole, roleid::regrole as role, grantor::regrole, admin_option
|
|
||||||
FROM pg_auth_members
|
|
||||||
WHERE member::regrole::text = 'grant_role2pc_user2'
|
|
||||||
order by member::regrole::text
|
|
||||||
) t
|
|
||||||
$$
|
|
||||||
);
|
|
||||||
result
|
|
||||||
---------------------------------------------------------------------
|
|
||||||
[{"member":"grant_role2pc_user2","role":"grant_role2pc_user1","grantor":"postgres","admin_option":true}]
|
|
||||||
[{"member":"grant_role2pc_user2","role":"grant_role2pc_user1","grantor":"postgres","admin_option":true}]
|
|
||||||
[{"member":"grant_role2pc_user2","role":"grant_role2pc_user1","grantor":"postgres","admin_option":true}]
|
|
||||||
(3 rows)
|
|
||||||
|
|
||||||
\c grant_role2pc_db
|
|
||||||
--test grant under transactional context with multiple operations
|
|
||||||
BEGIN;
|
|
||||||
grant grant_role2pc_user1,grant_role2pc_user2 to grant_role2pc_user3 WITH ADMIN OPTION;
|
|
||||||
grant grant_role2pc_user1 to grant_role2pc_user4 granted by grant_role2pc_user3 ;
|
|
||||||
COMMIT;
|
|
||||||
BEGIN;
|
|
||||||
grant grant_role2pc_user1 to grant_role2pc_user5 WITH ADMIN OPTION granted by grant_role2pc_user3;
|
|
||||||
grant grant_role2pc_user1 to grant_role2pc_user6;
|
|
||||||
ROLLBACK;
|
|
||||||
BEGIN;
|
|
||||||
grant grant_role2pc_user1 to grant_role2pc_user7;
|
|
||||||
SELECT 1/0;
|
|
||||||
ERROR: division by zero
|
|
||||||
commit;
|
|
||||||
\c regression
|
|
||||||
select result FROM run_command_on_all_nodes($$
|
|
||||||
SELECT array_to_json(array_agg(row_to_json(t)))
|
|
||||||
FROM (
|
|
||||||
SELECT member::regrole, roleid::regrole as role, grantor::regrole, admin_option
|
|
||||||
FROM pg_auth_members
|
|
||||||
WHERE member::regrole::text in
|
|
||||||
('grant_role2pc_user3','grant_role2pc_user4','grant_role2pc_user5','grant_role2pc_user6','grant_role2pc_user7')
|
|
||||||
order by member::regrole::text
|
|
||||||
) t
|
|
||||||
$$);
|
|
||||||
result
|
|
||||||
---------------------------------------------------------------------
|
|
||||||
[{"member":"grant_role2pc_user3","role":"grant_role2pc_user1","grantor":"postgres","admin_option":true},{"member":"grant_role2pc_user3","role":"grant_role2pc_user2","grantor":"postgres","admin_option":true},{"member":"grant_role2pc_user4","role":"grant_role2pc_user1","grantor":"grant_role2pc_user3","admin_option":false}]
|
|
||||||
[{"member":"grant_role2pc_user3","role":"grant_role2pc_user1","grantor":"postgres","admin_option":true},{"member":"grant_role2pc_user3","role":"grant_role2pc_user2","grantor":"postgres","admin_option":true},{"member":"grant_role2pc_user4","role":"grant_role2pc_user1","grantor":"grant_role2pc_user3","admin_option":false}]
|
|
||||||
[{"member":"grant_role2pc_user3","role":"grant_role2pc_user1","grantor":"postgres","admin_option":true},{"member":"grant_role2pc_user3","role":"grant_role2pc_user2","grantor":"postgres","admin_option":true},{"member":"grant_role2pc_user4","role":"grant_role2pc_user1","grantor":"grant_role2pc_user3","admin_option":false}]
|
|
||||||
(3 rows)
|
|
||||||
|
|
||||||
\c grant_role2pc_db
|
|
||||||
grant grant_role2pc_user1,grant_role2pc_user2 to grant_role2pc_user5,grant_role2pc_user6,grant_role2pc_user7 granted by grant_role2pc_user3;
|
|
||||||
\c regression
|
|
||||||
select result FROM run_command_on_all_nodes($$
|
|
||||||
SELECT array_to_json(array_agg(row_to_json(t)))
|
|
||||||
FROM (
|
|
||||||
SELECT member::regrole, roleid::regrole as role, grantor::regrole, admin_option
|
|
||||||
FROM pg_auth_members
|
|
||||||
WHERE member::regrole::text in
|
|
||||||
('grant_role2pc_user5','grant_role2pc_user6','grant_role2pc_user7')
|
|
||||||
order by member::regrole::text
|
|
||||||
) t
|
|
||||||
$$);
|
|
||||||
result
|
|
||||||
---------------------------------------------------------------------
|
|
||||||
[{"member":"grant_role2pc_user5","role":"grant_role2pc_user1","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user5","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user6","role":"grant_role2pc_user1","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user6","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user7","role":"grant_role2pc_user1","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user7","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false}]
|
|
||||||
[{"member":"grant_role2pc_user5","role":"grant_role2pc_user1","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user5","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user6","role":"grant_role2pc_user1","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user6","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user7","role":"grant_role2pc_user1","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user7","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false}]
|
|
||||||
[{"member":"grant_role2pc_user5","role":"grant_role2pc_user1","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user5","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user6","role":"grant_role2pc_user1","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user6","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user7","role":"grant_role2pc_user1","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user7","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false}]
|
|
||||||
(3 rows)
|
|
||||||
|
|
||||||
\c grant_role2pc_db
|
|
||||||
revoke admin option for grant_role2pc_user1 from grant_role2pc_user5 granted by grant_role2pc_user3;
|
|
||||||
--test revoke under transactional context with multiple operations
|
|
||||||
BEGIN;
|
|
||||||
revoke grant_role2pc_user1 from grant_role2pc_user5 granted by grant_role2pc_user3 ;
|
|
||||||
revoke grant_role2pc_user1 from grant_role2pc_user4 granted by grant_role2pc_user3;
|
|
||||||
COMMIT;
|
|
||||||
BEGIN;
|
|
||||||
revoke grant_role2pc_user1 from grant_role2pc_user6,grant_role2pc_user7 granted by grant_role2pc_user3;
|
|
||||||
revoke grant_role2pc_user1 from grant_role2pc_user3 cascade;
|
|
||||||
COMMIT;
|
|
||||||
\c regression
|
|
||||||
select result FROM run_command_on_all_nodes($$
|
|
||||||
SELECT array_to_json(array_agg(row_to_json(t)))
|
|
||||||
FROM (
|
|
||||||
SELECT member::regrole, roleid::regrole as role, grantor::regrole, admin_option
|
|
||||||
FROM pg_auth_members
|
|
||||||
WHERE member::regrole::text in
|
|
||||||
('grant_role2pc_user2','grant_role2pc_user3','grant_role2pc_user4','grant_role2pc_user5','grant_role2pc_user6','grant_role2pc_user7')
|
|
||||||
order by member::regrole::text
|
|
||||||
) t
|
|
||||||
$$);
|
|
||||||
result
|
|
||||||
---------------------------------------------------------------------
|
|
||||||
[{"member":"grant_role2pc_user2","role":"grant_role2pc_user1","grantor":"postgres","admin_option":true},{"member":"grant_role2pc_user3","role":"grant_role2pc_user2","grantor":"postgres","admin_option":true},{"member":"grant_role2pc_user5","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user6","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user7","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false}]
|
|
||||||
[{"member":"grant_role2pc_user2","role":"grant_role2pc_user1","grantor":"postgres","admin_option":true},{"member":"grant_role2pc_user3","role":"grant_role2pc_user2","grantor":"postgres","admin_option":true},{"member":"grant_role2pc_user5","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user6","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user7","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false}]
|
|
||||||
[{"member":"grant_role2pc_user2","role":"grant_role2pc_user1","grantor":"postgres","admin_option":true},{"member":"grant_role2pc_user3","role":"grant_role2pc_user2","grantor":"postgres","admin_option":true},{"member":"grant_role2pc_user5","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user6","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user7","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false}]
|
|
||||||
(3 rows)
|
|
||||||
|
|
||||||
\c - - - :worker_1_port
|
|
||||||
BEGIN;
|
|
||||||
grant grant_role2pc_user1 to grant_role2pc_user5 WITH ADMIN OPTION;
|
|
||||||
grant grant_role2pc_user1 to grant_role2pc_user6;
|
|
||||||
COMMIT;
|
|
||||||
\c - - - :master_port
|
|
||||||
select result FROM run_command_on_all_nodes($$
|
|
||||||
SELECT array_to_json(array_agg(row_to_json(t)))
|
|
||||||
FROM (
|
|
||||||
SELECT member::regrole, roleid::regrole as role, grantor::regrole, admin_option
|
|
||||||
FROM pg_auth_members
|
|
||||||
WHERE member::regrole::text in
|
|
||||||
('grant_role2pc_user5','grant_role2pc_user6')
|
|
||||||
order by member::regrole::text
|
|
||||||
) t
|
|
||||||
$$);
|
|
||||||
result
|
|
||||||
---------------------------------------------------------------------
|
|
||||||
[{"member":"grant_role2pc_user5","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user5","role":"grant_role2pc_user1","grantor":"postgres","admin_option":true},{"member":"grant_role2pc_user6","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user6","role":"grant_role2pc_user1","grantor":"postgres","admin_option":false}]
|
|
||||||
[{"member":"grant_role2pc_user5","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user5","role":"grant_role2pc_user1","grantor":"postgres","admin_option":true},{"member":"grant_role2pc_user6","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user6","role":"grant_role2pc_user1","grantor":"postgres","admin_option":false}]
|
|
||||||
[{"member":"grant_role2pc_user5","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user5","role":"grant_role2pc_user1","grantor":"postgres","admin_option":true},{"member":"grant_role2pc_user6","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user6","role":"grant_role2pc_user1","grantor":"postgres","admin_option":false}]
|
|
||||||
(3 rows)
|
|
||||||
|
|
||||||
revoke grant_role2pc_user1 from grant_role2pc_user5,grant_role2pc_user6;
|
|
||||||
--clean resources
|
|
||||||
DROP SCHEMA grant_role2pc;
|
|
||||||
set citus.enable_create_database_propagation to on;
|
|
||||||
DROP DATABASE grant_role2pc_db;
|
|
||||||
drop user grant_role2pc_user2,grant_role2pc_user3,grant_role2pc_user4,grant_role2pc_user5,grant_role2pc_user6,grant_role2pc_user7;
|
|
||||||
drop user grant_role2pc_user1;
|
|
||||||
reset citus.enable_create_database_propagation;
|
|
|
@ -112,7 +112,6 @@ test: grant_role_2pc
|
||||||
test: other_databases grant_role_from_non_maindb
|
test: other_databases grant_role_from_non_maindb
|
||||||
test: citus_internal_access
|
test: citus_internal_access
|
||||||
|
|
||||||
|
|
||||||
# Causal clock test
|
# Causal clock test
|
||||||
test: clock
|
test: clock
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue