This commit is contained in:
Janus Knudsen 2025-02-10 18:41:51 +01:00
parent 05d6977a76
commit c83442b4af
16 changed files with 315 additions and 272 deletions

View file

@ -9,8 +9,7 @@
"configuration": {
"host": "192.168.1.57",
"port": "5432",
"database": "postgres",
"url": "jdbc:postgresql://192.168.1.57:5432/postgres",
"url": "jdbc:postgresql://192.168.1.57:5432/",
"configurationType": "MANUAL",
"home": "postgresql_client",
"type": "dev",

View file

@ -1 +1 @@
{"resources":{"Scripts/Script-2.sql":{"default-datasource":"postgres-jdbc-1948450a8b4-5fc9eec404e65c44","default-catalog":"ptdb01"},"Scripts/SmartConfigSystem.sql":{"default-datasource":"postgres-jdbc-1948450a8b4-5fc9eec404e65c44","default-catalog":"ptdb01","default-schema":"ptmain"},"Scripts/grant-privileges.sql":{"default-datasource":"postgres-jdbc-1948450a8b4-5fc9eec404e65c44","default-catalog":"ptdb01"}}}
{"resources":{"Scripts/Script-1.sql":{"default-datasource":"postgres-jdbc-1948450a8b4-5fc9eec404e65c44","default-catalog":"postgres"},"Scripts/Script-2.sql":{"default-datasource":"postgres-jdbc-1948450a8b4-5fc9eec404e65c44","default-catalog":"ptdb01"},"Scripts/Script-3.sql":{"default-datasource":"postgres-jdbc-19484872d85-cd2a4a40116e706","default-catalog":"ptdb01","default-schema":"ptmain"},"Scripts/Script-4.sql":{"default-datasource":"postgres-jdbc-19484872d85-cd2a4a40116e706","default-catalog":"ptdb01","default-schema":"ptmain"},"Scripts/Script-5.sql":{"default-datasource":"postgres-jdbc-1948450a8b4-5fc9eec404e65c44","default-catalog":"sandbox"},"Scripts/Script.sql":{"default-datasource":"postgres-jdbc-19484872d85-cd2a4a40116e706","default-catalog":"sandbox","default-schema":"public"},"Scripts/SmartConfigSystem.sql":{"default-datasource":"postgres-jdbc-1948450a8b4-5fc9eec404e65c44","default-catalog":"sandbox"},"Scripts/grant-privileges.sql":{"default-datasource":"postgres-jdbc-1948450a8b4-5fc9eec404e65c44","default-catalog":"ptdb01"}}}

View file

@ -9,8 +9,8 @@
"configuration": {
"host": "192.168.1.57",
"port": "5432",
"database": "postgres",
"url": "jdbc:postgresql://192.168.1.57:5432/postgres",
"database": "ptmain",
"url": "jdbc:postgresql://192.168.1.57:5432/ptmain",
"configurationType": "MANUAL",
"home": "postgresql_client",
"type": "dev",
@ -34,34 +34,6 @@
},
"auth-model": "native"
}
},
"postgres-jdbc-19484872d85-cd2a4a40116e706": {
"provider": "postgresql",
"driver": "postgres-jdbc",
"name": "UB-KK01-sathumper",
"configuration": {
"host": "192.168.1.57",
"port": "5432",
"database": "postgres",
"url": "jdbc:postgresql://192.168.1.57:5432/postgres",
"configurationType": "MANUAL",
"home": "postgresql_client",
"type": "dev",
"closeIdleConnection": true,
"provider-properties": {
"@dbeaver-show-non-default-db@": "true",
"@dbeaver-chosen-role@": "",
"@dbeaver-show-template-db@": "false",
"@dbeaver-show-unavailable-db@": "false",
"show-database-statistics": "false",
"@dbeaver-read-all-data-types-db@": "false",
"read-keys-with-columns": "false",
"@dbeaver-use-prepared-statements-db@": "false",
"postgresql.dd.plain.string": "false",
"postgresql.dd.tag.string": "false"
},
"auth-model": "native"
}
}
},
"connection-types": {

View file

@ -1 +1 @@
{"resources":{"Scripts/Script-1.sql":{"default-datasource":"postgres-jdbc-1948450a8b4-5fc9eec404e65c44","default-catalog":"ptdb01","default-schema":"ptmain"},"Scripts/Script-2.sql":{"default-datasource":"postgres-jdbc-1948450a8b4-5fc9eec404e65c44","default-catalog":"ptdb01"},"Scripts/SmartConfigSystem.sql":{"default-datasource":"postgres-jdbc-1948450a8b4-5fc9eec404e65c44","default-catalog":"ptdb01"},"Scripts/grant-privileges.sql":{"default-datasource":"postgres-jdbc-1948450a8b4-5fc9eec404e65c44","default-catalog":"ptdb01"}}}
{"resources":{"Scripts/SmartConfigSystem.sql":{"default-datasource":"postgres-jdbc-1948450a8b4-5fc9eec404e65c44","default-catalog":"sandbox"},"Scripts/grant-privileges.sql":{"default-datasource":"postgres-jdbc-1948450a8b4-5fc9eec404e65c44","default-catalog":"ptdb01"}}}

View file

@ -1,99 +0,0 @@
GRANT USAGE, CREATE ON SCHEMA swp TO sathumper;
ALTER DEFAULT PRIVILEGES IN SCHEMA swp
GRANT ALL PRIVILEGES ON TABLES TO sathumper;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA swp TO sathumper;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA swp TO sathumper;
select * from dev.app_configuration
CREATE OR REPLACE FUNCTION dev.notify_config_change()
RETURNS TRIGGER AS $$
BEGIN
IF TG_OP = 'DELETE' THEN
PERFORM pg_notify(
'config_changes',
json_build_object('operation', TG_OP, 'data', row_to_json(OLD))::text
);
RETURN OLD; -- Return OLD for DELETE operations
ELSE
PERFORM pg_notify(
'config_changes',
json_build_object('operation', TG_OP, 'data', row_to_json(NEW))::text
);
RETURN NEW; -- Return NEW for INSERT/UPDATE operations
END IF;
END;
$$ LANGUAGE plpgsql;
-- Trigger på configuration tabellen
CREATE TRIGGER config_change_trigger
AFTER INSERT OR UPDATE OR DELETE ON dev.app_configuration
FOR EACH ROW EXECUTE FUNCTION dev.notify_config_change();
update dev.app_configuration
set "label" = "label" where id = 3
SELECT row_to_json(t)
FROM (SELECT 1 as id, 'test' as key) t;
SET myapp.tenant_id = '1';
SHOW myapp.tenant_id;
create TABLE dev.app_configuration1 (
tenant_id varchar(25),
config_key VARCHAR(255),
config_value TEXT,
PRIMARY KEY (tenant_id, config_key)
);
ALTER TABLE dev.app_configuration1 ENABLE ROW LEVEL SECURITY;
CREATE drop POLICY tenant_policy
ON dev.app_configuration1
FOR SELECT
USING (
current_setting('myapp.tenant_id', true) IS NOT NULL AND
tenant_id = current_setting('myapp.tenant_id')::INT
);
CREATE POLICY tenant_policy
ON dev.app_configuration1
FOR SELECT
USING (
tenant_id::text = current_user
);
insert into dev.app_configuration1
(tenant_id, config_key, config_value) values('dev', 't2', 'best dat')
SET myapp.tenant_id = 0
ALTER USER din_bruger NOBYPASS RLS;
select * from dev.app_configuration1
SHOW row_security;
GRANT USAGE, CREATE ON SCHEMA dev TO sathumper;
ALTER DEFAULT PRIVILEGES IN SCHEMA dev
GRANT ALL PRIVILEGES ON TABLES TO sathumper;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA dev TO sathumper;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA dev TO sathumper;