diff --git a/datamodel/12_1_roles.sql b/datamodel/12_1_roles.sql index 351a05b17..a6d0c87ec 100644 --- a/datamodel/12_1_roles.sql +++ b/datamodel/12_1_roles.sql @@ -33,7 +33,9 @@ GRANT ALL ON ALL TABLES IN SCHEMA tww_cfg TO tww_user; ALTER DEFAULT PRIVILEGES IN SCHEMA tww_od GRANT ALL ON TABLES TO tww_user; ALTER DEFAULT PRIVILEGES IN SCHEMA tww_od GRANT ALL ON SEQUENCES TO tww_user; -DO $$ BEGIN EXECUTE 'GRANT CREATE ON DATABASE ' || (SELECT current_database()) || ' TO "tww_user"'; END $$; -- required for ili2pg imports/exports +GRANT ALL ON SCHEMA pg2ili_abwasser TO tww_user; +ALTER DEFAULT PRIVILEGES IN SCHEMA pg2ili_abwasser GRANT ALL ON TABLES TO tww_user; +ALTER DEFAULT PRIVILEGES IN SCHEMA pg2ili_abwasser GRANT ALL ON SEQUENCES TO tww_user; /* Manager */ GRANT ALL ON SCHEMA tww_vl TO tww_manager; diff --git a/datamodel/changelogs/0001/01_schema.sql b/datamodel/changelogs/0001/01_schema.sql index de4fe7f9a..d22945578 100644 --- a/datamodel/changelogs/0001/01_schema.sql +++ b/datamodel/changelogs/0001/01_schema.sql @@ -3,3 +3,4 @@ CREATE SCHEMA tww_sys; CREATE SCHEMA tww_vl; CREATE SCHEMA tww_od; CREATE SCHEMA tww_cfg; +CREATE SCHEMA pg2ili_abwasser; diff --git a/datamodel/test/test_schemas.py b/datamodel/test/test_schemas.py index 027270297..05a22b5bb 100644 --- a/datamodel/test/test_schemas.py +++ b/datamodel/test/test_schemas.py @@ -10,6 +10,7 @@ TWW_SCHEMAS = ("tww_sys", "tww_vl", "tww_od", "tww_cfg", "tww_app") PG_SCHEMAS = ("pg_toast", "information_schema", "pg_catalog", "public") +ILI_SCHEMAS = ("pg2ili_abwasser",) class TestSchemas(unittest.TestCase, DbTestBase): @@ -23,7 +24,7 @@ def setUpClass(cls): cls.conn = psycopg.connect(f"service={pgservice}") def test_list_schemas(self): - schemas = ", ".join([f"'{schema}'" for schema in TWW_SCHEMAS + PG_SCHEMAS]) + schemas = ", ".join([f"'{schema}'" for schema in TWW_SCHEMAS + PG_SCHEMAS + ILI_SCHEMAS]) list_schemas = f"SELECT schema_name FROM information_schema.schemata WHERE schema_name NOT IN ({schemas});" self.check_empty(list_schemas) @@ -32,7 +33,9 @@ def test_app_schema(self): self.check_empty(list_tables) def test_data_schemas(self): - pg_schemas = ", ".join([f"'{schema}'" for schema in TWW_SCHEMAS + PG_SCHEMAS]) + pg_schemas = ", ".join( + [f"'{schema}'" for schema in TWW_SCHEMAS + PG_SCHEMAS + ILI_SCHEMAS] + ) list_views = ( "SELECT * FROM information_schema.tables WHERE table_type = 'VIEW' " f"AND table_schema NOT IN ('tww_app', {pg_schemas})"