73 lines
1.4 KiB
SQL
73 lines
1.4 KiB
SQL
DO
|
|
$do$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT
|
|
FROM pg_catalog.pg_roles
|
|
WHERE rolname = 'windmill_user') THEN
|
|
|
|
LOCK TABLE pg_catalog.pg_roles;
|
|
|
|
CREATE ROLE windmill_user;
|
|
|
|
END IF;
|
|
EXCEPTION WHEN OTHERS THEN
|
|
RAISE NOTICE 'error creating the windmill_user role: %', SQLERRM;
|
|
END
|
|
$do$;
|
|
|
|
DO
|
|
$do$
|
|
BEGIN
|
|
LOCK TABLE pg_catalog.pg_roles;
|
|
|
|
GRANT ALL
|
|
ON ALL TABLES IN SCHEMA public
|
|
TO windmill_user;
|
|
|
|
GRANT ALL PRIVILEGES
|
|
ON ALL SEQUENCES IN SCHEMA public
|
|
TO windmill_user;
|
|
|
|
ALTER DEFAULT PRIVILEGES
|
|
IN SCHEMA public
|
|
GRANT ALL ON TABLES TO windmill_user;
|
|
|
|
ALTER DEFAULT PRIVILEGES
|
|
IN SCHEMA public
|
|
GRANT ALL ON SEQUENCES TO windmill_user;
|
|
|
|
EXCEPTION WHEN OTHERS THEN
|
|
RAISE NOTICE 'error granting proper permission to windmill_user: %', SQLERRM;
|
|
END
|
|
$do$;
|
|
|
|
DO
|
|
$do$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT
|
|
FROM pg_catalog.pg_roles
|
|
WHERE rolname = 'windmill_admin') THEN
|
|
|
|
LOCK TABLE pg_catalog.pg_roles;
|
|
|
|
CREATE ROLE windmill_admin WITH BYPASSRLS;
|
|
|
|
|
|
END IF;
|
|
EXCEPTION WHEN OTHERS THEN
|
|
RAISE NOTICE 'error creating the windmill_admin role: %', SQLERRM;
|
|
END
|
|
$do$;
|
|
|
|
|
|
DO
|
|
$do$
|
|
BEGIN
|
|
GRANT windmill_user TO windmill_admin;
|
|
EXCEPTION WHEN OTHERS THEN
|
|
RAISE NOTICE 'error granting windmill_user to windmill_admin: %', SQLERRM;
|
|
END
|
|
$do$;
|