Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
@@ -0,0 +1,74 @@
|
||||
-- # $Id$
|
||||
-- # $HeadURL$
|
||||
-- # $Author$
|
||||
|
||||
------------------------
|
||||
-- Create user procedure
|
||||
------------------------
|
||||
DROP FUNCTION IF EXISTS create_user_if_not_exists(text);
|
||||
DROP FUNCTION IF EXISTS create_user_if_not_exists(text, text);
|
||||
CREATE OR REPLACE FUNCTION create_user_if_not_exists(rolename text, passw text default 'ets11de') RETURNS TEXT AS
|
||||
$$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT * FROM pg_roles WHERE rolname = rolename) THEN
|
||||
EXECUTE format('CREATE USER %s WITH PASSWORD ''%s''', rolename, passw);
|
||||
EXECUTE format('GRANT ets_ro TO %s', rolename);
|
||||
RETURN 'CREATE USER';
|
||||
ELSE
|
||||
RETURN format('USER ''%I'' ALREADY EXISTS', rolename);
|
||||
END IF;
|
||||
END;
|
||||
$$
|
||||
LANGUAGE plpgsql;
|
||||
|
||||
-- Create db users and roles
|
||||
CREATE ROLE ets_ro WITH PASSWORD 'ets11de';
|
||||
-- SELECT create_user_if_not_exists('ets_ro');
|
||||
SELECT create_user_if_not_exists('ets_admin');
|
||||
SELECT create_user_if_not_exists('ets_aes');
|
||||
SELECT create_user_if_not_exists('ets_asm');
|
||||
SELECT create_user_if_not_exists('ets_avm');
|
||||
SELECT create_user_if_not_exists('ets_bdv');
|
||||
SELECT create_user_if_not_exists('ets_core');
|
||||
SELECT create_user_if_not_exists('ets_exm');
|
||||
SELECT create_user_if_not_exists('ets_flm');
|
||||
SELECT create_user_if_not_exists('ets_flt');
|
||||
SELECT create_user_if_not_exists('ets_gna');
|
||||
SELECT create_user_if_not_exists('ets_ism');
|
||||
SELECT create_user_if_not_exists('ets_mdm');
|
||||
SELECT create_user_if_not_exists('ets_msg');
|
||||
SELECT create_user_if_not_exists('ets_nom');
|
||||
SELECT create_user_if_not_exists('ets_opm');
|
||||
SELECT create_user_if_not_exists('ets_pdm');
|
||||
SELECT create_user_if_not_exists('ets_ppm');
|
||||
SELECT create_user_if_not_exists('ets_som');
|
||||
SELECT create_user_if_not_exists('ets_srm');
|
||||
SELECT create_user_if_not_exists('ets_tab');
|
||||
SELECT create_user_if_not_exists('ets_whg');
|
||||
-- user for all exercises
|
||||
SELECT create_user_if_not_exists('ets_ex_00');
|
||||
-- test data (uncomment if necessary)
|
||||
-- SELECT create_user_if_not_exists('ets_ex_35');
|
||||
-- SELECT create_user_if_not_exists('ets_ex_42');
|
||||
|
||||
-- grant create role to ets_admin, ets_exm
|
||||
ALTER ROLE ets_admin WITH CREATEROLE;
|
||||
ALTER ROLE ets_exm WITH CREATEROLE;
|
||||
|
||||
-- ets_ro for all global users, able to select or reference the other global schemas
|
||||
GRANT ets_ro TO ets_admin, ets_core, ets_aes, ets_asm, ets_avm, ets_bdv, ets_exm, ets_flm, ets_flt, ets_gna, ets_ism, ets_mdm, ets_msg, ets_nom, ets_opm, ets_pdm, ets_ppm, ets_som, ets_srm, ets_tab, ets_whg;
|
||||
|
||||
-- ets_admin able to alter tables that he does not own
|
||||
GRANT ets_core, ets_aes, ets_asm, ets_avm, ets_bdv, ets_flm, ets_flt, ets_gna, ets_ism, ets_mdm, ets_msg, ets_nom, ets_opm, ets_pdm, ets_ppm, ets_som, ets_srm, ets_tab, ets_whg TO ets_admin;
|
||||
|
||||
-- ets_exm super user of DB (same as ets_admin)
|
||||
GRANT ets_admin TO ets_exm;
|
||||
|
||||
-- For Convenience (Backwards Usability)
|
||||
CREATE USER ctc PASSWORD 'ctc11de' CREATEROLE;
|
||||
CREATE USER ctc_sv PASSWORD 'ctc11de' CREATEROLE;
|
||||
CREATE USER ctc_ws PASSWORD 'ctc11de' CREATEROLE;
|
||||
|
||||
GRANT ets_ro TO ctc, ctc_sv;
|
||||
|
||||
|
||||
Reference in new issue
Block a user