blob: b6b048e56924472693a1ae5057b241751e0fc8f8 [file] [log] [blame]
CREATE ROLE regress_mdb_admin_user1;
CREATE ROLE regress_mdb_admin_user2;
CREATE ROLE regress_mdb_admin_user3;
CREATE ROLE regress_superuser WITH SUPERUSER;
GRANT mdb_admin TO regress_mdb_admin_user1;
GRANT CREATE ON DATABASE regression TO regress_mdb_admin_user2;
GRANT CREATE ON DATABASE regression TO regress_mdb_admin_user3;
-- mdb admin trasfers ownership to another role
SET ROLE regress_mdb_admin_user2;
CREATE FUNCTION regress_mdb_admin_add(integer, integer) RETURNS integer
AS 'SELECT $1 + $2;'
LANGUAGE SQL
IMMUTABLE
RETURNS NULL ON NULL INPUT;
CREATE SCHEMA regress_mdb_admin_schema;
GRANT CREATE ON SCHEMA regress_mdb_admin_schema TO regress_mdb_admin_user3;
CREATE TABLE regress_mdb_admin_schema.regress_mdb_admin_table();
CREATE TABLE regress_mdb_admin_table();
CREATE VIEW regress_mdb_admin_view as SELECT 1;
SET ROLE regress_mdb_admin_user1;
ALTER FUNCTION regress_mdb_admin_add (integer, integer) OWNER TO regress_mdb_admin_user3;
ALTER VIEW regress_mdb_admin_view OWNER TO regress_mdb_admin_user3;
ALTER TABLE regress_mdb_admin_schema.regress_mdb_admin_table OWNER TO regress_mdb_admin_user3;
ALTER TABLE regress_mdb_admin_table OWNER TO regress_mdb_admin_user3;
ALTER SCHEMA regress_mdb_admin_schema OWNER TO regress_mdb_admin_user3;
-- mdb admin fails to transfer ownership to superusers and particular system roles
ALTER FUNCTION regress_mdb_admin_add (integer, integer) OWNER TO regress_superuser;
ALTER VIEW regress_mdb_admin_view OWNER TO regress_superuser;
ALTER TABLE regress_mdb_admin_schema.regress_mdb_admin_table OWNER TO regress_superuser;
ALTER TABLE regress_mdb_admin_table OWNER TO regress_superuser;
ALTER SCHEMA regress_mdb_admin_schema OWNER TO regress_superuser;
ALTER FUNCTION regress_mdb_admin_add (integer, integer) OWNER TO pg_execute_server_program;
ALTER VIEW regress_mdb_admin_view OWNER TO pg_execute_server_program;
ALTER TABLE regress_mdb_admin_schema.regress_mdb_admin_table OWNER TO pg_execute_server_program;
ALTER TABLE regress_mdb_admin_table OWNER TO pg_execute_server_program;
ALTER SCHEMA regress_mdb_admin_schema OWNER TO pg_execute_server_program;
ALTER FUNCTION regress_mdb_admin_add (integer, integer) OWNER TO pg_write_server_files;
ALTER VIEW regress_mdb_admin_view OWNER TO pg_write_server_files;
ALTER TABLE regress_mdb_admin_schema.regress_mdb_admin_table OWNER TO pg_write_server_files;
ALTER TABLE regress_mdb_admin_table OWNER TO pg_write_server_files;
ALTER SCHEMA regress_mdb_admin_schema OWNER TO pg_write_server_files;
ALTER FUNCTION regress_mdb_admin_add (integer, integer) OWNER TO pg_read_server_files;
ALTER VIEW regress_mdb_admin_view OWNER TO pg_read_server_files;
ALTER TABLE regress_mdb_admin_schema.regress_mdb_admin_table OWNER TO pg_read_server_files;
ALTER TABLE regress_mdb_admin_table OWNER TO pg_read_server_files;
ALTER SCHEMA regress_mdb_admin_schema OWNER TO pg_read_server_files;
ALTER FUNCTION regress_mdb_admin_add (integer, integer) OWNER TO pg_write_all_data;
ALTER VIEW regress_mdb_admin_view OWNER TO pg_write_all_data;
ALTER TABLE regress_mdb_admin_schema.regress_mdb_admin_table OWNER TO pg_write_all_data;
ALTER TABLE regress_mdb_admin_table OWNER TO pg_write_all_data;
ALTER SCHEMA regress_mdb_admin_schema OWNER TO pg_write_all_data;
ALTER FUNCTION regress_mdb_admin_add (integer, integer) OWNER TO pg_read_all_data;
ALTER VIEW regress_mdb_admin_view OWNER TO pg_read_all_data;
ALTER TABLE regress_mdb_admin_schema.regress_mdb_admin_table OWNER TO pg_read_all_data;
ALTER TABLE regress_mdb_admin_table OWNER TO pg_read_all_data;
ALTER SCHEMA regress_mdb_admin_schema OWNER TO pg_read_all_data;
-- end tests
RESET SESSION AUTHORIZATION;
--
REVOKE CREATE ON DATABASE regression FROM regress_mdb_admin_user2;
REVOKE CREATE ON DATABASE regression FROM regress_mdb_admin_user3;
DROP VIEW regress_mdb_admin_view;
DROP FUNCTION regress_mdb_admin_add;
DROP TABLE regress_mdb_admin_schema.regress_mdb_admin_table;
DROP TABLE regress_mdb_admin_table;
DROP SCHEMA regress_mdb_admin_schema;
DROP ROLE regress_mdb_admin_user1;
DROP ROLE regress_mdb_admin_user2;
DROP ROLE regress_mdb_admin_user3;
DROP ROLE regress_superuser;