1) Fixed an issue where Default Privileges and Privileges not working correctly. #8369

2) Fixed <br/> tag visible issue.
This commit is contained in:
Akshay Joshi
2025-01-22 19:40:13 +05:30
committed by GitHub
parent 133a59c71b
commit 84a8a522e3
84 changed files with 2456 additions and 1462 deletions

View File

@@ -33,6 +33,7 @@ Bug fixes
*********
| `Issue #5204 <https://github.com/pgadmin-org/pgadmin4/issues/5204>`_ - Fixed an issue where pgadmin cannot install into path with non ASCII characters.
| `Issue #6044 <https://github.com/pgadmin-org/pgadmin4/issues/6044>`_ - Fixed an issue where filter dialog save fails when the PostgreSQL server/database connection is lost.
| `Issue #6968 <https://github.com/pgadmin-org/pgadmin4/issues/6968>`_ - Fixed an issue where option key was not registering in PSQL tool.
| `Issue #8072 <https://github.com/pgadmin-org/pgadmin4/issues/8072>`_ - Fixed an issue where Schema Diff not produce difference script for Index definition with where condition.
| `Issue #8142 <https://github.com/pgadmin-org/pgadmin4/issues/8142>`_ - Correct the documentation for the MFA configuration.
@@ -48,3 +49,4 @@ Bug fixes
| `Issue #8309 <https://github.com/pgadmin-org/pgadmin4/issues/8309>`_ - Remove the option "With no data (concurrently)" from Refresh MATERIALIZED VIEW context menu.
| `Issue #8320 <https://github.com/pgadmin-org/pgadmin4/issues/8320>`_ - Fix an issue where wrong information is shown after using the filter on the Dashboard> State tab.
| `Issue #8365 <https://github.com/pgadmin-org/pgadmin4/issues/8365>`_ - Fixed an issue where PSQL tool is not opening if database name have HTML characters in the name.
| `Issue #8369 <https://github.com/pgadmin-org/pgadmin4/issues/8369>`_ - Fixed an issue where Default Privileges and Privileges not working correctly.

View File

@@ -34,6 +34,7 @@ from pgadmin.tools.sqleditor.utils.query_history import QueryHistory
from pgadmin.tools.schema_diff.node_registry import SchemaDiffRegistry
from pgadmin.model import db, Server, Database
from pgadmin.browser.utils import underscore_escape
from pgadmin.utils.constants import TWO_PARAM_STRING
@@ -1073,7 +1074,7 @@ class DatabaseView(PGChildNodeView):
status, errmsg = conn.connect()
return internal_server_error(
errormsg=msg)
errormsg=underscore_escape(msg))
return make_json_response(success=1)

View File

@@ -1,23 +0,0 @@
{# Fetch privileges for schema #}
SELECT
'nspacl' as deftype, COALESCE(gt.rolname, 'PUBLIC') AS grantee,
g.rolname AS grantor, pg_catalog.array_agg(b.privilege_type) AS privileges,
pg_catalog.array_agg(b.is_grantable) AS grantable
FROM
(SELECT
(d).grantee AS grantee, (d).grantor AS grantor,
(d).is_grantable AS is_grantable,
CASE (d).privilege_type
WHEN 'CREATE' THEN 'C'
WHEN 'USAGE' THEN 'U'
ELSE 'UNKNOWN - ' || (d).privilege_type
END AS privilege_type
FROM
(SELECT pg_catalog.aclexplode(nsp.nspacl) as d
FROM pg_catalog.pg_namespace nsp
WHERE nsp.oid = {{ scid|qtLiteral(conn) }}::OID
) a
) b
LEFT JOIN pg_catalog.pg_roles g ON (b.grantor = g.oid)
LEFT JOIN pg_catalog.pg_roles gt ON (b.grantee = gt.oid)
GROUP BY g.rolname, gt.rolname;

View File

@@ -1,17 +0,0 @@
{% import 'macros/privilege.macros' as PRIVILEGE %}
{% if data %}
CREATE SCHEMA {{ conn|qtIdent(data.name) }}
{% if data.namespaceowner %}
AUTHORIZATION {{ conn|qtIdent(data.namespaceowner) }};
{% endif %}
{% if data.description %}
COMMENT ON SCHEMA {{ conn|qtIdent(data.name) }}
IS {{ data.description|qtLiteral(conn) }};
{% endif %}
{% if data.nspacl %}
{% for priv in data.nspacl %}
{{ PRIVILEGE.APPLY(conn, 'SCHEMA', priv.grantee, data.name, priv.without_grant, priv.with_grant) }}{% endfor %}
{% endif %}
{% endif %}

View File

@@ -1 +0,0 @@
SELECT nsp.nspname FROM pg_catalog.pg_namespace nsp WHERE nsp.oid = {{ scid|qtLiteral(conn) }};

View File

@@ -1,9 +0,0 @@
{% import 'catalog/pg/macros/catalogs.sql' as CATALOGS %}
SELECT
nsp.nspname as schema_name,
{{ CATALOGS.LIST('nsp') }} AS is_catalog,
{{ CATALOGS.DB_SUPPORT('nsp') }} AS db_support
FROM
pg_catalog.pg_namespace nsp
WHERE
nsp.oid = {{ scid|qtLiteral(conn) }}::OID;

View File

@@ -1,23 +0,0 @@
{# Fetch privileges for schema #}
SELECT
'nspacl' as deftype, COALESCE(gt.rolname, 'PUBLIC') AS grantee,
g.rolname AS grantor, pg_catalog.array_agg(b.privilege_type) AS privileges,
pg_catalog.array_agg(b.is_grantable) AS grantable
FROM
(SELECT
(d).grantee AS grantee, (d).grantor AS grantor,
(d).is_grantable AS is_grantable,
CASE (d).privilege_type
WHEN 'CREATE' THEN 'C'
WHEN 'USAGE' THEN 'U'
ELSE 'UNKNOWN - ' || (d).privilege_type
END AS privilege_type
FROM
(SELECT pg_catalog.aclexplode(nsp.nspacl) as d
FROM pg_catalog.pg_namespace nsp
WHERE nsp.oid = {{ scid|qtLiteral(conn) }}::OID
) a
) b
LEFT JOIN pg_catalog.pg_roles g ON (b.grantor = g.oid)
LEFT JOIN pg_catalog.pg_roles gt ON (b.grantee = gt.oid)
GROUP BY g.rolname, gt.rolname;

View File

@@ -1 +0,0 @@
SELECT nsp.nspname FROM pg_catalog.pg_namespace nsp WHERE nsp.oid = {{ scid|qtLiteral(conn) }};

View File

@@ -1,9 +0,0 @@
{% import 'catalog/pg/macros/catalogs.sql' as CATALOGS %}
SELECT
nsp.nspname as schema_name,
{{ CATALOGS.LIST('nsp') }} AS is_catalog,
{{ CATALOGS.DB_SUPPORT('nsp') }} AS db_support
FROM
pg_catalog.pg_namespace nsp
WHERE
nsp.oid = {{ scid|qtLiteral(conn) }}::OID;

View File

@@ -13,7 +13,7 @@
},
"deftblacl": {
"type": "TABLE",
"acl": ["r", "a", "w", "d", "D", "x", "t"]
"acl": ["a", "r", "w", "d", "D", "x", "t"]
},
"defseqacl": {
"type": "SEQUENCE",

View File

@@ -1,23 +0,0 @@
{# Fetch privileges for schema #}
SELECT
'nspacl' as deftype, COALESCE(gt.rolname, 'PUBLIC') AS grantee,
g.rolname AS grantor, pg_catalog.array_agg(b.privilege_type) AS privileges,
pg_catalog.array_agg(b.is_grantable) AS grantable
FROM
(SELECT
(d).grantee AS grantee, (d).grantor AS grantor,
(d).is_grantable AS is_grantable,
CASE (d).privilege_type
WHEN 'CREATE' THEN 'C'
WHEN 'USAGE' THEN 'U'
ELSE 'UNKNOWN - ' || (d).privilege_type
END AS privilege_type
FROM
(SELECT pg_catalog.aclexplode(nsp.nspacl) as d
FROM pg_catalog.pg_namespace nsp
WHERE nsp.oid = {{ scid|qtLiteral(conn) }}::OID
) a
) b
LEFT JOIN pg_catalog.pg_roles g ON (b.grantor = g.oid)
LEFT JOIN pg_catalog.pg_roles gt ON (b.grantee = gt.oid)
GROUP BY g.rolname, gt.rolname;

View File

@@ -1 +0,0 @@
SELECT nsp.nspname FROM pg_catalog.pg_namespace nsp WHERE nsp.oid = {{ scid|qtLiteral(conn) }};

View File

@@ -1,9 +0,0 @@
{% import 'catalog/ppas/macros/catalogs.sql' as CATALOGS %}
SELECT
nsp.nspname as schema_name,
{{ CATALOGS.LIST('nsp') }} AS is_catalog,
{{ CATALOGS.DB_SUPPORT('nsp') }} AS db_support
FROM
pg_catalog.pg_namespace nsp
WHERE
nsp.oid = {{ scid|qtLiteral(conn) }}::OID;

View File

@@ -1,30 +0,0 @@
{% import 'macros/security.macros' as SECLABEL %}
{% if data %}
{# ==== To update catalog comments ==== #}
{% if data.description and data.description != o_data.description %}
COMMENT ON SCHEMA {{ conn|qtIdent(o_data.name) }}
IS {{ data.description|qtLiteral(conn) }};
{% endif %}
{# ==== To update catalog securitylabel ==== #}
{# The SQL generated below will change Security Label #}
{% if data.seclabels and data.seclabels|length > 0 %}
{% set seclabels = data.seclabels %}
{% if 'deleted' in seclabels and seclabels.deleted|length > 0 %}
{% for r in seclabels.deleted %}
{{ SECLABEL.DROP(conn, 'SCHEMA', o_data.name, r.provider) }}
{% endfor %}
{% endif %}
{% if 'added' in seclabels and seclabels.added|length > 0 %}
{% for r in seclabels.added %}
{{ SECLABEL.APPLY(conn, 'SCHEMA', o_data.name, r.provider, r.label) }}
{% endfor %}
{% endif %}
{% if 'changed' in seclabels and seclabels.changed|length > 0 %}
{% for r in seclabels.changed %}
{{ SECLABEL.APPLY(conn, 'SCHEMA', o_data.name, r.provider, r.label) }}
{% endfor %}
{% endif %}
{% endif %}
{% endif %}

View File

@@ -1,23 +0,0 @@
{# Fetch privileges for schema #}
SELECT
'nspacl' as deftype, COALESCE(gt.rolname, 'PUBLIC') AS grantee,
g.rolname AS grantor, pg_catalog.array_agg(b.privilege_type) AS privileges,
pg_catalog.array_agg(b.is_grantable) AS grantable
FROM
(SELECT
(d).grantee AS grantee, (d).grantor AS grantor,
(d).is_grantable AS is_grantable,
CASE (d).privilege_type
WHEN 'CREATE' THEN 'C'
WHEN 'USAGE' THEN 'U'
ELSE 'UNKNOWN - ' || (d).privilege_type
END AS privilege_type
FROM
(SELECT pg_catalog.aclexplode(nsp.nspacl) as d
FROM pg_catalog.pg_namespace nsp
WHERE nsp.oid = {{ scid|qtLiteral(conn) }}::OID
) a
) b
LEFT JOIN pg_catalog.pg_roles g ON (b.grantor = g.oid)
LEFT JOIN pg_catalog.pg_roles gt ON (b.grantee = gt.oid)
GROUP BY g.rolname, gt.rolname;

View File

@@ -1,17 +0,0 @@
{% import 'macros/privilege.macros' as PRIVILEGE %}
{% if data %}
CREATE SCHEMA {{ conn|qtIdent(data.name) }}
{% if data.namespaceowner %}
AUTHORIZATION {{ conn|qtIdent(data.namespaceowner) }};
{% endif %}
{% if data.description %}
COMMENT ON SCHEMA {{ conn|qtIdent(data.name) }}
IS {{ data.description|qtLiteral(conn) }};
{% endif %}
{% if data.nspacl %}
{% for priv in data.nspacl %}
{{ PRIVILEGE.APPLY(conn, 'SCHEMA', priv.grantee, data.name, priv.without_grant, priv.with_grant) }}{% endfor %}
{% endif %}
{% endif %}

View File

@@ -1 +0,0 @@
SELECT nsp.nspname FROM pg_catalog.pg_namespace nsp WHERE nsp.oid = {{ scid|qtLiteral(conn) }};

View File

@@ -1,9 +0,0 @@
{% import 'catalog/ppas/macros/catalogs.sql' as CATALOGS %}
SELECT
nsp.nspname as schema_name,
{{ CATALOGS.LIST('nsp') }} AS is_catalog,
{{ CATALOGS.DB_SUPPORT('nsp') }} AS db_support
FROM
pg_catalog.pg_namespace nsp
WHERE
nsp.oid = {{ scid|qtLiteral(conn) }}::OID;

View File

@@ -1,30 +0,0 @@
{% import 'macros/security.macros' as SECLABEL %}
{% if data %}
{# ==== To update catalog comments ==== #}
{% if data.description and data.description != o_data.description %}
COMMENT ON SCHEMA {{ conn|qtIdent(o_data.name) }}
IS {{ data.description|qtLiteral(conn) }};
{% endif %}
{# ==== To update catalog securitylabel ==== #}
{# The SQL generated below will change Security Label #}
{% if data.seclabels and data.seclabels|length > 0 %}
{% set seclabels = data.seclabels %}
{% if 'deleted' in seclabels and seclabels.deleted|length > 0 %}
{% for r in seclabels.deleted %}
{{ SECLABEL.DROP(conn, 'SCHEMA', o_data.name, r.provider) }}
{% endfor %}
{% endif %}
{% if 'added' in seclabels and seclabels.added|length > 0 %}
{% for r in seclabels.added %}
{{ SECLABEL.APPLY(conn, 'SCHEMA', o_data.name, r.provider, r.label) }}
{% endfor %}
{% endif %}
{% if 'changed' in seclabels and seclabels.changed|length > 0 %}
{% for r in seclabels.changed %}
{{ SECLABEL.APPLY(conn, 'SCHEMA', o_data.name, r.provider, r.label) }}
{% endfor %}
{% endif %}
{% endif %}
{% endif %}

View File

@@ -13,7 +13,7 @@
},
"deftblacl": {
"type": "TABLE",
"acl": ["r", "a", "w", "d", "D", "x", "t"]
"acl": ["a", "r", "w", "d", "D", "x", "t"]
},
"defseqacl": {
"type": "SEQUENCE",

View File

@@ -13,7 +13,7 @@
},
"deftblacl": {
"type": "TABLE",
"acl": ["r", "a", "w", "d", "D", "x", "t"]
"acl": ["a", "r", "w", "d", "D", "x", "t"]
},
"defseqacl": {
"type": "SEQUENCE",

View File

@@ -13,7 +13,7 @@
},
"deftblacl": {
"type": "TABLE",
"acl": ["r", "a", "w", "d", "D", "x", "t"]
"acl": ["a", "r", "w", "d", "D", "x", "t"]
},
"defseqacl": {
"type": "SEQUENCE",

View File

@@ -22,5 +22,9 @@
"deffuncacl": {
"type": "FUNCTION",
"acl": ["X"]
},
"deftypeacl": {
"type": "TYPE",
"acl": ["U"]
}
}

View File

@@ -13,7 +13,7 @@
},
"deftblacl": {
"type": "TABLE",
"acl": ["r", "a", "w", "d", "D", "x", "t"]
"acl": ["a", "r", "w", "d", "D", "x", "t"]
},
"defseqacl": {
"type": "SEQUENCE",
@@ -22,5 +22,9 @@
"deffuncacl": {
"type": "FUNCTION",
"acl": ["X"]
},
"deftypeacl": {
"type": "TYPE",
"acl": ["U"]
}
}

View File

@@ -13,7 +13,7 @@
{% endif %}
{% if 'changed' in data.deffuncacl %}
{% for priv in data.deffuncacl.changed %}
{{ DEFAULT_PRIVILEGE.RESETALL(conn, 'FUNCTIONS', priv.grantee) }}
{{ DEFAULT_PRIVILEGE.RESETALL(conn, 'FUNCTIONS', priv.grantee, priv.grantor) }}
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'FUNCTIONS', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
{% endfor %}
{% endif %}
@@ -24,7 +24,6 @@
{% endif %}
{% endif %}
{# Change the variables/options #}
{% if data.variables and data.variables|length > 0 %}
{% set variables = data.variables %}
@@ -86,7 +85,8 @@
{% endif %}
{% if 'changed' in data.deftblacl %}
{% for priv in data.deftblacl.changed %}
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'TABLES', priv.grantee, priv.without_grant, priv.with_grant) }}
{{ DEFAULT_PRIVILEGE.RESETALL(conn, 'TABLES', priv.grantee, priv.grantor) }}
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'TABLES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
{% endfor %}
{% endif %}
{% if 'added' in data.deftblacl %}
@@ -97,7 +97,6 @@
{% endif %}
{# Change the default priviledges for the sequences #}
{% if data.deftblacl %}
{% if data.defseqacl %}
{% if 'deleted' in data.defseqacl %}
{% for priv in data.defseqacl.deleted %}
@@ -106,7 +105,7 @@
{% endif %}
{% if 'changed' in data.defseqacl %}
{% for priv in data.defseqacl.changed %}
{{ DEFAULT_PRIVILEGE.RESETALL(conn, 'SEQUENCES', priv.grantee) }}
{{ DEFAULT_PRIVILEGE.RESETALL(conn, 'SEQUENCES', priv.grantee, priv.grantor) }}
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'SEQUENCES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
{% endfor %}
{% endif %}
@@ -117,9 +116,26 @@
{% endif %}
{% endif %}
{# Change the default priviledges/ACLs for types #}
{% if data.deftypeacl %}
{% if 'deleted' in data.deftypeacl %}
{% for priv in data.deftypeacl.deleted %}
{{ DEFAULT_PRIVILEGE.RESETALL(conn, 'TYPES', priv.grantee, priv.grantor) }}
{% endfor %}
{% endif %}
{% if 'changed' in data.deftypeacl %}
{% for priv in data.deftypeacl.changed %}
{{ DEFAULT_PRIVILEGE.RESETALL(conn, 'TYPES', priv.grantee, priv.grantor) }}
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'TYPES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
{% endfor %}
{% endif %}
{% if 'added' in data.deftypeacl %}
{% for priv in data.deftypeacl.added %}
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'TYPES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
{% endfor %}
{% endif %}
{% endif %}
{# Change the security labels #}
{% if data.seclabels and data.seclabels|length > 0 %}
{% set seclabels = data.seclabels %}

View File

@@ -0,0 +1,26 @@
-- Database: <TEST_DB_NAME>
-- DROP DATABASE IF EXISTS <TEST_DB_NAME>;
CREATE DATABASE <TEST_DB_NAME>
WITH
OWNER = postgres
ENCODING = 'UTF8'
LC_COLLATE = '<LC_COLLATE>'
LC_CTYPE = '<LC_CTYPE>'
LOCALE_PROVIDER = 'libc'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT DELETE, INSERT, UPDATE ON TABLES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT SELECT, UPDATE ON SEQUENCES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT EXECUTE ON FUNCTIONS TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT USAGE ON TYPES TO test_default_priv_user;

View File

@@ -0,0 +1,28 @@
-- Database: <TEST_DB_NAME>
-- DROP DATABASE IF EXISTS <TEST_DB_NAME>;
CREATE DATABASE <TEST_DB_NAME>
WITH
OWNER = postgres
ENCODING = 'UTF8'
LC_COLLATE = 'C'
LC_CTYPE = 'C'
LOCALE_PROVIDER = 'libc'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT TRUNCATE ON TABLES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT DELETE ON TABLES TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT UPDATE ON SEQUENCES TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT EXECUTE ON FUNCTIONS TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT USAGE ON TYPES TO test_default_priv_user WITH GRANT OPTION;

View File

@@ -0,0 +1,14 @@
-- Database: <TEST_DB_NAME>
-- DROP DATABASE IF EXISTS <TEST_DB_NAME>;
CREATE DATABASE <TEST_DB_NAME>
WITH
OWNER = postgres
ENCODING = 'UTF8'
LC_COLLATE = '<LC_COLLATE>'
LC_CTYPE = '<LC_CTYPE>'
LOCALE_PROVIDER = 'libc'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;

View File

@@ -22,3 +22,4 @@ GRANT SELECT, USAGE ON SEQUENCES TO PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE USAGE ON TYPES FROM PUBLIC;

View File

@@ -11,3 +11,5 @@ ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE ALL ON TABLES FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE ALL ON SEQUENCES FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE USAGE ON TYPES FROM PUBLIC;

View File

@@ -8,3 +8,5 @@ ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE ALL ON TABLES FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE ALL ON SEQUENCES FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE USAGE ON TYPES FROM PUBLIC;

View File

@@ -2,7 +2,7 @@
"scenarios": [
{
"type": "alter",
"name": "Alert default priviliges for functions",
"name": "Alert default privileges for functions",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
@@ -34,6 +34,7 @@
"name": "Alert default privileges for tables",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
@@ -64,6 +65,7 @@
]
}
},
"expected_msql_file": "alter_default_db_privileges_tables_msql.sql",
"expected_sql_file": "alter_default_db_privileges_tables.sql"
},
{
@@ -96,14 +98,15 @@
},
"deftblacl": {"deleted":[{"grantor":"postgres","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
},
"expected_sql_file": "alter_default_db_privileges_sequences.sql",
"expected_msql_file": "alter_default_db_privileges_sequences_msql.sql"
"expected_msql_file": "alter_default_db_privileges_sequences_msql.sql",
"expected_sql_file": "alter_default_db_privileges_sequences.sql"
},
{
"type": "alter",
"name": "Alert default privileges for types",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
@@ -125,6 +128,7 @@
}
},
"expected_msql_file": "alter_default_db_privileges_types_msql.sql",
"expected_sql_file": "alter_default_db_privileges_types.sql"
},
{
@@ -137,11 +141,70 @@
"data": {
"deffuncacl": {"added":[{"grantee":"PUBLIC","privileges":[{"privilege_type":"X","privilege":true,"with_grant":false}],"grantor":"postgres"}]},
"deftypeacl": {"added":[{"grantee":"PUBLIC","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"postgres"}]},
"deftblacl":{"added":[{"grantee":"postgres","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"grantor":"postgres"}],"deleted":[{"grantor":"postgres","grantee":"PUBLIC","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false,"cid":"nn626"},{"privilege_type":"r","privilege":true,"with_grant":false,"cid":"nn627"},{"privilege_type":"w","privilege":true,"with_grant":false,"cid":"nn628"},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]},
"defseqacl":{"added":[{"grantee":"postgres","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"postgres"}],"deleted":[{"grantor":"postgres","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false,"cid":"nn673"},{"privilege_type":"U","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
"deftblacl":{"added":[{"grantee":"postgres","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"grantor":"postgres"}],"deleted":[{"grantor":"postgres","grantee":"PUBLIC","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]},
"defseqacl":{"added":[{"grantee":"postgres","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"postgres"}],"deleted":[{"grantor":"postgres","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
},
"expected_sql_file": "alter_default_db_privileges_reset_all.sql"
},
{
"type": "alter",
"name": "Alert default privileges with new user add for function, table, sequence and type",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":false}],"grantor":"postgres"}]},
"deftypeacl": {"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"postgres"}]},
"deftblacl":{"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false}],"grantor":"postgres"}]},
"defseqacl":{"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false}],"grantor":"postgres"}]}
},
"expected_msql_file": "alter_default_db_privileges_add_msql.sql",
"expected_sql_file": "alter_default_db_privileges_add_all.sql",
"pre_scenario_sql": "CREATE ROLE test_default_priv_user WITH NOLOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION NOBYPASSRLS;"
},
{
"type": "alter",
"name": "Alert default privileges with new user for function, table, sequence and type",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"deftypeacl": {"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"deftblacl":{
"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"D","privilege":true,"with_grant":false}],"grantor":"postgres"}],
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":false}],"grantor":"postgres"}],
"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"d","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"defseqacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false}], "grantor":"postgres"}],
"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":true}],"grantor":"postgres"}]}
},
"expected_msql_file": "alter_default_db_privileges_all_msql.sql",
"expected_sql_file": "alter_default_db_privileges_all.sql"
},
{
"type": "alter",
"name": "Alert default privileges with new user reset all",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"deftypeacl": {"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"deftblacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"D","privilege":true,"with_grant":false}, {"privilege_type":"d","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"defseqacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":true}],"grantor":"postgres"}]}
},
"expected_sql_file": "alter_default_db_privileges_newuser_reset_all.sql",
"post_scenario_sql": "DROP ROLE IF EXISTS test_default_priv_user;"
},
{
"type": "create",
"name": "Create Database with new options and libc",

View File

@@ -12,3 +12,5 @@ ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE ALL ON TABLES FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE ALL ON SEQUENCES FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE USAGE ON TYPES FROM PUBLIC;

View File

@@ -2,7 +2,7 @@
"scenarios": [
{
"type": "alter",
"name": "Alert default priviliges for functions",
"name": "Alert default privileges for functions",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
@@ -34,6 +34,7 @@
"name": "Alert default privileges for tables",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
@@ -64,6 +65,7 @@
]
}
},
"expected_msql_file": "alter_default_db_privileges_tables_msql.sql",
"expected_sql_file": "alter_default_db_privileges_tables.sql"
},
{
@@ -96,14 +98,15 @@
},
"deftblacl": {"deleted":[{"grantor":"postgres","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
},
"expected_sql_file": "alter_default_db_privileges_sequences.sql",
"expected_msql_file": "alter_default_db_privileges_sequences_msql.sql"
"expected_msql_file": "alter_default_db_privileges_sequences_msql.sql",
"expected_sql_file": "alter_default_db_privileges_sequences.sql"
},
{
"type": "alter",
"name": "Alert default privileges for types",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
@@ -125,6 +128,7 @@
}
},
"expected_msql_file": "alter_default_db_privileges_types_msql.sql",
"expected_sql_file": "alter_default_db_privileges_types.sql"
},
{
@@ -137,11 +141,70 @@
"data": {
"deffuncacl": {"added":[{"grantee":"PUBLIC","privileges":[{"privilege_type":"X","privilege":true,"with_grant":false}],"grantor":"postgres"}]},
"deftypeacl": {"added":[{"grantee":"PUBLIC","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"postgres"}]},
"deftblacl":{"added":[{"grantee":"postgres","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"grantor":"postgres"}],"deleted":[{"grantor":"postgres","grantee":"PUBLIC","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false,"cid":"nn626"},{"privilege_type":"r","privilege":true,"with_grant":false,"cid":"nn627"},{"privilege_type":"w","privilege":true,"with_grant":false,"cid":"nn628"},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]},
"defseqacl":{"added":[{"grantee":"postgres","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"postgres"}],"deleted":[{"grantor":"postgres","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false,"cid":"nn673"},{"privilege_type":"U","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
"deftblacl":{"added":[{"grantee":"postgres","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"grantor":"postgres"}],"deleted":[{"grantor":"postgres","grantee":"PUBLIC","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]},
"defseqacl":{"added":[{"grantee":"postgres","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"postgres"}],"deleted":[{"grantor":"postgres","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
},
"expected_sql_file": "alter_default_db_privileges_reset_all.sql"
},
{
"type": "alter",
"name": "Alert default privileges with new user add for function, table, sequence and type",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":false}],"grantor":"postgres"}]},
"deftypeacl": {"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"postgres"}]},
"deftblacl":{"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false}],"grantor":"postgres"}]},
"defseqacl":{"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false}],"grantor":"postgres"}]}
},
"expected_msql_file": "alter_default_db_privileges_add_msql.sql",
"expected_sql_file": "alter_default_db_privileges_add_all.sql",
"pre_scenario_sql": "CREATE ROLE test_default_priv_user WITH NOLOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION NOBYPASSRLS;"
},
{
"type": "alter",
"name": "Alert default privileges with new user for function, table, sequence and type",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"deftypeacl": {"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"deftblacl":{
"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"D","privilege":true,"with_grant":false}],"grantor":"postgres"}],
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":false}],"grantor":"postgres"}],
"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"d","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"defseqacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false}], "grantor":"postgres"}],
"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":true}],"grantor":"postgres"}]}
},
"expected_msql_file": "alter_default_db_privileges_all_msql.sql",
"expected_sql_file": "alter_default_db_privileges_all.sql"
},
{
"type": "alter",
"name": "Alert default privileges with new user reset all",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"deftypeacl": {"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"deftblacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"D","privilege":true,"with_grant":false}, {"privilege_type":"d","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"defseqacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":true}],"grantor":"postgres"}]}
},
"expected_sql_file": "alter_default_db_privileges_newuser_reset_all.sql",
"post_scenario_sql": "DROP ROLE IF EXISTS test_default_priv_user;"
},
{
"type": "create",
"name": "Create Database with new options and libc",

View File

@@ -0,0 +1,31 @@
-- Database: <TEST_DB_NAME>
-- DROP DATABASE IF EXISTS <TEST_DB_NAME>;
CREATE DATABASE <TEST_DB_NAME>
WITH
OWNER = postgres
ENCODING = 'UTF8'
LC_COLLATE = '<LC_COLLATE>'
LC_CTYPE = '<LC_CTYPE>'
LOCALE_PROVIDER = 'libc'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE ALL ON TABLES FROM postgres;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON TABLES TO postgres;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT DELETE, MAINTAIN, UPDATE ON TABLES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT SELECT, UPDATE ON SEQUENCES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT EXECUTE ON FUNCTIONS TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT USAGE ON TYPES TO test_default_priv_user;

View File

@@ -0,0 +1,12 @@
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT EXECUTE ON FUNCTIONS TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT DELETE, MAINTAIN, UPDATE ON TABLES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT SELECT, UPDATE ON SEQUENCES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT USAGE ON TYPES TO test_default_priv_user;

View File

@@ -0,0 +1,33 @@
-- Database: <TEST_DB_NAME>
-- DROP DATABASE IF EXISTS <TEST_DB_NAME>;
CREATE DATABASE <TEST_DB_NAME>
WITH
OWNER = postgres
ENCODING = 'UTF8'
LC_COLLATE = 'C'
LC_CTYPE = 'C'
LOCALE_PROVIDER = 'libc'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE ALL ON TABLES FROM postgres;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON TABLES TO postgres;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT TRUNCATE ON TABLES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT MAINTAIN ON TABLES TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT UPDATE ON SEQUENCES TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT EXECUTE ON FUNCTIONS TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT USAGE ON TYPES TO test_default_priv_user WITH GRANT OPTION;

View File

@@ -0,0 +1,27 @@
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
REVOKE ALL ON FUNCTIONS FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT EXECUTE ON FUNCTIONS TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
REVOKE ALL ON TABLES FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
REVOKE ALL ON TABLES FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT MAINTAIN ON TABLES TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT TRUNCATE ON TABLES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
REVOKE ALL ON SEQUENCES FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
REVOKE ALL ON SEQUENCES FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT UPDATE ON SEQUENCES TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
REVOKE ALL ON TYPES FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT USAGE ON TYPES TO test_default_priv_user WITH GRANT OPTION;

View File

@@ -0,0 +1,19 @@
-- Database: <TEST_DB_NAME>
-- DROP DATABASE IF EXISTS <TEST_DB_NAME>;
CREATE DATABASE <TEST_DB_NAME>
WITH
OWNER = postgres
ENCODING = 'UTF8'
LC_COLLATE = '<LC_COLLATE>'
LC_CTYPE = '<LC_CTYPE>'
LOCALE_PROVIDER = 'libc'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE ALL ON TABLES FROM postgres;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON TABLES TO postgres;

View File

@@ -0,0 +1,19 @@
-- Database: <TEST_DB_NAME>
-- DROP DATABASE IF EXISTS <TEST_DB_NAME>;
CREATE DATABASE <TEST_DB_NAME>
WITH
OWNER = postgres
ENCODING = 'UTF8'
LC_COLLATE = '<LC_COLLATE>'
LC_CTYPE = '<LC_CTYPE>'
LOCALE_PROVIDER = 'libc'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE ALL ON TABLES FROM postgres;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON TABLES TO postgres;

View File

@@ -11,3 +11,5 @@ ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE ALL ON TABLES FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE ALL ON SEQUENCES FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE USAGE ON TYPES FROM PUBLIC;

View File

@@ -2,7 +2,7 @@
"scenarios": [
{
"type": "alter",
"name": "Alert default priviliges for functions",
"name": "Alert default privileges for functions",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
@@ -34,6 +34,7 @@
"name": "Alert default privileges for tables",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
@@ -64,6 +65,7 @@
]
}
},
"expected_msql_file": "alter_default_db_privileges_tables_msql.sql",
"expected_sql_file": "alter_default_db_privileges_tables.sql"
},
{
@@ -96,14 +98,15 @@
},
"deftblacl": {"deleted":[{"grantor":"postgres","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
},
"expected_sql_file": "alter_default_db_privileges_sequences.sql",
"expected_msql_file": "alter_default_db_privileges_sequences_msql.sql"
"expected_msql_file": "alter_default_db_privileges_sequences_msql.sql",
"expected_sql_file": "alter_default_db_privileges_sequences.sql"
},
{
"type": "alter",
"name": "Alert default privileges for types",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
@@ -125,6 +128,7 @@
}
},
"expected_msql_file": "alter_default_db_privileges_types_msql.sql",
"expected_sql_file": "alter_default_db_privileges_types.sql"
},
{
@@ -137,11 +141,70 @@
"data": {
"deffuncacl": {"added":[{"grantee":"PUBLIC","privileges":[{"privilege_type":"X","privilege":true,"with_grant":false}],"grantor":"postgres"}]},
"deftypeacl": {"added":[{"grantee":"PUBLIC","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"postgres"}]},
"deftblacl":{"added":[{"grantee":"postgres","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false},{"privilege_type":"m","privilege":true,"with_grant":false}],"grantor":"postgres"}],"deleted":[{"grantor":"postgres","grantee":"PUBLIC","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false,"cid":"nn626"},{"privilege_type":"r","privilege":true,"with_grant":false,"cid":"nn627"},{"privilege_type":"w","privilege":true,"with_grant":false,"cid":"nn628"},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]},
"defseqacl":{"added":[{"grantee":"postgres","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"postgres"}],"deleted":[{"grantor":"postgres","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false,"cid":"nn673"},{"privilege_type":"U","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
"deftblacl":{"added":[{"grantee":"postgres","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"grantor":"postgres"}],"deleted":[{"grantor":"postgres","grantee":"PUBLIC","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]},
"defseqacl":{"added":[{"grantee":"postgres","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"postgres"}],"deleted":[{"grantor":"postgres","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
},
"expected_sql_file": "alter_default_db_privileges_reset_all.sql"
},
{
"type": "alter",
"name": "Alert default privileges with new user add for function, table, sequence and type",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":false}],"grantor":"postgres"}]},
"deftypeacl": {"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"postgres"}]},
"deftblacl":{"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"m","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false}],"grantor":"postgres"}]},
"defseqacl":{"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false}],"grantor":"postgres"}]}
},
"expected_msql_file": "alter_default_db_privileges_add_msql.sql",
"expected_sql_file": "alter_default_db_privileges_add_all.sql",
"pre_scenario_sql": "CREATE ROLE test_default_priv_user WITH NOLOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION NOBYPASSRLS;"
},
{
"type": "alter",
"name": "Alert default privileges with new user for function, table, sequence and type",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"deftypeacl": {"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"deftblacl":{
"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"D","privilege":true,"with_grant":false}],"grantor":"postgres"}],
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":false}],"grantor":"postgres"}],
"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"m","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"defseqacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false}], "grantor":"postgres"}],
"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":true}],"grantor":"postgres"}]}
},
"expected_msql_file": "alter_default_db_privileges_all_msql.sql",
"expected_sql_file": "alter_default_db_privileges_all.sql"
},
{
"type": "alter",
"name": "Alert default privileges with new user reset all",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"deftypeacl": {"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"deftblacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"D","privilege":true,"with_grant":false}, {"privilege_type":"d","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"defseqacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":true}],"grantor":"postgres"}]}
},
"expected_sql_file": "alter_default_db_privileges_newuser_reset_all.sql",
"post_scenario_sql": "DROP ROLE IF EXISTS test_default_priv_user;"
},
{
"type": "create",
"name": "Create Database with new options and libc",
@@ -597,4 +660,4 @@
}
}
]
}
}

View File

@@ -0,0 +1,25 @@
-- Database: <TEST_DB_NAME>
-- DROP DATABASE IF EXISTS <TEST_DB_NAME>;
CREATE DATABASE <TEST_DB_NAME>
WITH
OWNER = postgres
ENCODING = 'UTF8'
LC_COLLATE = '<LC_COLLATE>'
LC_CTYPE = '<LC_CTYPE>'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT DELETE, INSERT, UPDATE ON TABLES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT SELECT, UPDATE ON SEQUENCES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT EXECUTE ON FUNCTIONS TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT USAGE ON TYPES TO test_default_priv_user;

View File

@@ -0,0 +1,12 @@
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT EXECUTE ON FUNCTIONS TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT DELETE, INSERT, UPDATE ON TABLES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT SELECT, UPDATE ON SEQUENCES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT USAGE ON TYPES TO test_default_priv_user;

View File

@@ -0,0 +1,27 @@
-- Database: <TEST_DB_NAME>
-- DROP DATABASE IF EXISTS <TEST_DB_NAME>;
CREATE DATABASE <TEST_DB_NAME>
WITH
OWNER = postgres
ENCODING = 'UTF8'
LC_COLLATE = 'C'
LC_CTYPE = 'C'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT TRUNCATE ON TABLES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT DELETE ON TABLES TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT UPDATE ON SEQUENCES TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT EXECUTE ON FUNCTIONS TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT USAGE ON TYPES TO test_default_priv_user WITH GRANT OPTION;

View File

@@ -0,0 +1,27 @@
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
REVOKE ALL ON FUNCTIONS FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT EXECUTE ON FUNCTIONS TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
REVOKE ALL ON TABLES FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
REVOKE ALL ON TABLES FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT DELETE ON TABLES TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT TRUNCATE ON TABLES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
REVOKE ALL ON SEQUENCES FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
REVOKE ALL ON SEQUENCES FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT UPDATE ON SEQUENCES TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
REVOKE ALL ON TYPES FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT USAGE ON TYPES TO test_default_priv_user WITH GRANT OPTION;

View File

@@ -0,0 +1,13 @@
-- Database: <TEST_DB_NAME>
-- DROP DATABASE IF EXISTS <TEST_DB_NAME>;
CREATE DATABASE <TEST_DB_NAME>
WITH
OWNER = postgres
ENCODING = 'UTF8'
LC_COLLATE = '<LC_COLLATE>'
LC_CTYPE = '<LC_CTYPE>'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;

View File

@@ -6,4 +6,4 @@ ALTER DEFAULT PRIVILEGES FOR ROLE postgres
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
REVOKE ALL ON SEQUENCES FROM postgres;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT USAGE, SELECT ON SEQUENCES TO PUBLIC;
GRANT SELECT, USAGE ON SEQUENCES TO PUBLIC;

View File

@@ -1,6 +1,6 @@
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
REVOKE ALL ON TABLES FROM PUBLIC;
REVOKE ALL ON TABLES FROM postgres;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
GRANT SELECT ON TABLES TO PUBLIC;

View File

@@ -21,3 +21,4 @@ GRANT SELECT, USAGE ON SEQUENCES TO PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE USAGE ON TYPES FROM PUBLIC;

View File

@@ -0,0 +1,4 @@
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
REVOKE ALL ON TYPES FROM PUBLIC;

View File

@@ -2,7 +2,7 @@
"scenarios": [
{
"type": "alter",
"name": "Alert default priviliges for functions",
"name": "Alert default privileges for functions",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
@@ -34,6 +34,7 @@
"name": "Alert default privileges for tables",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
@@ -64,6 +65,7 @@
]
}
},
"expected_msql_file": "alter_default_db_privileges_tables_msql.sql",
"expected_sql_file": "alter_default_db_privileges_tables.sql"
},
{
@@ -96,14 +98,15 @@
},
"deftblacl": {"deleted":[{"grantor":"postgres","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
},
"expected_sql_file": "alter_default_db_privileges_sequences.sql",
"expected_msql_file": "alter_default_db_privileges_sequences_msql.sql"
"expected_msql_file": "alter_default_db_privileges_sequences_msql.sql",
"expected_sql_file": "alter_default_db_privileges_sequences.sql"
},
{
"type": "alter",
"name": "Alert default privileges for types",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
@@ -125,6 +128,7 @@
}
},
"expected_msql_file": "alter_default_db_privileges_types_msql.sql",
"expected_sql_file": "alter_default_db_privileges_types.sql"
},
{
@@ -137,10 +141,69 @@
"data": {
"deffuncacl": {"added":[{"grantee":"PUBLIC","privileges":[{"privilege_type":"X","privilege":true,"with_grant":false}],"grantor":"postgres"}]},
"deftypeacl": {"added":[{"grantee":"PUBLIC","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"postgres"}]},
"deftblacl":{"added":[{"grantee":"postgres","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"grantor":"postgres"}],"deleted":[{"grantor":"postgres","grantee":"PUBLIC","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false,"cid":"nn626"},{"privilege_type":"r","privilege":true,"with_grant":false,"cid":"nn627"},{"privilege_type":"w","privilege":true,"with_grant":false,"cid":"nn628"},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]},
"defseqacl":{"added":[{"grantee":"postgres","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"postgres"}],"deleted":[{"grantor":"postgres","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false,"cid":"nn673"},{"privilege_type":"U","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
"deftblacl":{"added":[{"grantee":"postgres","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"grantor":"postgres"}],"deleted":[{"grantor":"postgres","grantee":"PUBLIC","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]},
"defseqacl":{"added":[{"grantee":"postgres","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"postgres"}],"deleted":[{"grantor":"postgres","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
},
"expected_sql_file": "alter_default_db_privileges_reset_all.sql"
},
{
"type": "alter",
"name": "Alert default privileges with new user add for function, table, sequence and type",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":false}],"grantor":"postgres"}]},
"deftypeacl": {"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"postgres"}]},
"deftblacl":{"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false}],"grantor":"postgres"}]},
"defseqacl":{"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false}],"grantor":"postgres"}]}
},
"expected_msql_file": "alter_default_db_privileges_add_msql.sql",
"expected_sql_file": "alter_default_db_privileges_add_all.sql",
"pre_scenario_sql": "CREATE ROLE test_default_priv_user WITH NOLOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION NOBYPASSRLS;"
},
{
"type": "alter",
"name": "Alert default privileges with new user for function, table, sequence and type",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"deftypeacl": {"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"deftblacl":{
"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"D","privilege":true,"with_grant":false}],"grantor":"postgres"}],
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":false}],"grantor":"postgres"}],
"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"d","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"defseqacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false}], "grantor":"postgres"}],
"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":true}],"grantor":"postgres"}]}
},
"expected_msql_file": "alter_default_db_privileges_all_msql.sql",
"expected_sql_file": "alter_default_db_privileges_all.sql"
},
{
"type": "alter",
"name": "Alert default privileges with new user reset all",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"deftypeacl": {"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"deftblacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"D","privilege":true,"with_grant":false}, {"privilege_type":"d","privilege":true,"with_grant":true}],"grantor":"postgres"}]},
"defseqacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":true}],"grantor":"postgres"}]}
},
"expected_sql_file": "alter_default_db_privileges_newuser_reset_all.sql",
"post_scenario_sql": "DROP ROLE IF EXISTS test_default_priv_user;"
}
]
}

View File

@@ -0,0 +1,26 @@
-- Database: <TEST_DB_NAME>
-- DROP DATABASE IF EXISTS <TEST_DB_NAME>;
CREATE DATABASE <TEST_DB_NAME>
WITH
OWNER = enterprisedb
ENCODING = 'UTF8'
LC_COLLATE = '<LC_COLLATE>'
LC_CTYPE = '<LC_CTYPE>'
LOCALE_PROVIDER = 'libc'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT DELETE, INSERT, UPDATE ON TABLES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT SELECT, UPDATE ON SEQUENCES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT EXECUTE ON FUNCTIONS TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT USAGE ON TYPES TO test_default_priv_user;

View File

@@ -0,0 +1,28 @@
-- Database: <TEST_DB_NAME>
-- DROP DATABASE IF EXISTS <TEST_DB_NAME>;
CREATE DATABASE <TEST_DB_NAME>
WITH
OWNER = enterprisedb
ENCODING = 'UTF8'
LC_COLLATE = 'C'
LC_CTYPE = 'C'
LOCALE_PROVIDER = 'libc'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT TRUNCATE ON TABLES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT DELETE ON TABLES TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT UPDATE ON SEQUENCES TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT EXECUTE ON FUNCTIONS TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT USAGE ON TYPES TO test_default_priv_user WITH GRANT OPTION;

View File

@@ -0,0 +1,14 @@
-- Database: <TEST_DB_NAME>
-- DROP DATABASE IF EXISTS <TEST_DB_NAME>;
CREATE DATABASE <TEST_DB_NAME>
WITH
OWNER = enterprisedb
ENCODING = 'UTF8'
LC_COLLATE = '<LC_COLLATE>'
LC_CTYPE = '<LC_CTYPE>'
LOCALE_PROVIDER = 'libc'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;

View File

@@ -21,3 +21,5 @@ ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT SELECT, USAGE ON SEQUENCES TO PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE USAGE ON TYPES FROM PUBLIC;

View File

@@ -11,3 +11,5 @@ ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE ALL ON TABLES FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE ALL ON SEQUENCES FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE USAGE ON TYPES FROM PUBLIC;

View File

@@ -8,3 +8,5 @@ ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE ALL ON TABLES FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE ALL ON SEQUENCES FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE USAGE ON TYPES FROM PUBLIC;

View File

@@ -2,7 +2,7 @@
"scenarios": [
{
"type": "alter",
"name": "Alert default priviliges for functions",
"name": "Alert default privileges for functions",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
@@ -34,6 +34,7 @@
"name": "Alert default privileges for tables",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
@@ -64,6 +65,7 @@
]
}
},
"expected_msql_file": "alter_default_db_privileges_tables_msql.sql",
"expected_sql_file": "alter_default_db_privileges_tables.sql"
},
{
@@ -90,20 +92,21 @@
"acltype": "defaultacls"
}
],
"added":[{"grantee":"PUBLIC","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false},
"added":[
{"grantee":"PUBLIC","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false},
{"privilege_type":"r","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]
},
"deftblacl": {"deleted":[{"grantor":"enterprisedb","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
},
"expected_sql_file": "alter_default_db_privileges_sequences.sql",
"expected_msql_file": "alter_default_db_privileges_sequences_msql.sql"
"expected_msql_file": "alter_default_db_privileges_sequences_msql.sql",
"expected_sql_file": "alter_default_db_privileges_sequences.sql"
},
{
"type": "alter",
"name": "Alert default privileges for types",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
@@ -125,6 +128,7 @@
}
},
"expected_msql_file": "alter_default_db_privileges_types_msql.sql",
"expected_sql_file": "alter_default_db_privileges_types.sql"
},
{
@@ -137,11 +141,70 @@
"data": {
"deffuncacl": {"added":[{"grantee":"PUBLIC","privileges":[{"privilege_type":"X","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]},
"deftypeacl": {"added":[{"grantee":"PUBLIC","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]},
"deftblacl":{"added":[{"grantee":"enterprisedb","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],"deleted":[{"grantor":"enterprisedb","grantee":"PUBLIC","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false,"cid":"nn626"},{"privilege_type":"r","privilege":true,"with_grant":false,"cid":"nn627"},{"privilege_type":"w","privilege":true,"with_grant":false,"cid":"nn628"},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]},
"defseqacl":{"added":[{"grantee":"enterprisedb","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],"deleted":[{"grantor":"enterprisedb","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false,"cid":"nn673"},{"privilege_type":"U","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
"deftblacl":{"added":[{"grantee":"enterprisedb","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],"deleted":[{"grantor":"enterprisedb","grantee":"PUBLIC","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]},
"defseqacl":{"added":[{"grantee":"enterprisedb","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],"deleted":[{"grantor":"enterprisedb","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
},
"expected_sql_file": "alter_default_db_privileges_reset_all.sql"
},
{
"type": "alter",
"name": "Alert default privileges with new user add for function, table, sequence and type",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]},
"deftypeacl": {"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]},
"deftblacl":{"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]},
"defseqacl":{"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]}
},
"expected_msql_file": "alter_default_db_privileges_add_msql.sql",
"expected_sql_file": "alter_default_db_privileges_add_all.sql",
"pre_scenario_sql": "CREATE ROLE test_default_priv_user WITH NOLOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION NOBYPASSRLS;"
},
{
"type": "alter",
"name": "Alert default privileges with new user for function, table, sequence and type",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"deftypeacl": {"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"deftblacl":{
"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"D","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],
"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"d","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"defseqacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false}], "grantor":"enterprisedb"}],
"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]}
},
"expected_msql_file": "alter_default_db_privileges_all_msql.sql",
"expected_sql_file": "alter_default_db_privileges_all.sql"
},
{
"type": "alter",
"name": "Alert default privileges with new user reset all",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"deftypeacl": {"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"deftblacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"D","privilege":true,"with_grant":false}, {"privilege_type":"d","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"defseqacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]}
},
"expected_sql_file": "alter_default_db_privileges_newuser_reset_all.sql",
"post_scenario_sql": "DROP ROLE IF EXISTS test_default_priv_user;"
},
{
"type": "create",
"name": "Create Database with new options and libc",

View File

@@ -12,3 +12,5 @@ ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE ALL ON TABLES FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE ALL ON SEQUENCES FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE USAGE ON TYPES FROM PUBLIC;

View File

@@ -2,7 +2,7 @@
"scenarios": [
{
"type": "alter",
"name": "Alert default priviliges for functions",
"name": "Alert default privileges for functions",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
@@ -34,6 +34,7 @@
"name": "Alert default privileges for tables",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
@@ -64,6 +65,7 @@
]
}
},
"expected_msql_file": "alter_default_db_privileges_tables_msql.sql",
"expected_sql_file": "alter_default_db_privileges_tables.sql"
},
{
@@ -90,20 +92,21 @@
"acltype": "defaultacls"
}
],
"added":[{"grantee":"PUBLIC","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false},
"added":[
{"grantee":"PUBLIC","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false},
{"privilege_type":"r","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]
},
"deftblacl": {"deleted":[{"grantor":"enterprisedb","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
},
"expected_sql_file": "alter_default_db_privileges_sequences.sql",
"expected_msql_file": "alter_default_db_privileges_sequences_msql.sql"
"expected_msql_file": "alter_default_db_privileges_sequences_msql.sql",
"expected_sql_file": "alter_default_db_privileges_sequences.sql"
},
{
"type": "alter",
"name": "Alert default privileges for types",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
@@ -125,6 +128,7 @@
}
},
"expected_msql_file": "alter_default_db_privileges_types_msql.sql",
"expected_sql_file": "alter_default_db_privileges_types.sql"
},
{
@@ -137,11 +141,70 @@
"data": {
"deffuncacl": {"added":[{"grantee":"PUBLIC","privileges":[{"privilege_type":"X","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]},
"deftypeacl": {"added":[{"grantee":"PUBLIC","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]},
"deftblacl":{"added":[{"grantee":"enterprisedb","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],"deleted":[{"grantor":"enterprisedb","grantee":"PUBLIC","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false,"cid":"nn626"},{"privilege_type":"r","privilege":true,"with_grant":false,"cid":"nn627"},{"privilege_type":"w","privilege":true,"with_grant":false,"cid":"nn628"},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]},
"defseqacl":{"added":[{"grantee":"enterprisedb","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],"deleted":[{"grantor":"enterprisedb","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false,"cid":"nn673"},{"privilege_type":"U","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
"deftblacl":{"added":[{"grantee":"enterprisedb","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],"deleted":[{"grantor":"enterprisedb","grantee":"PUBLIC","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]},
"defseqacl":{"added":[{"grantee":"enterprisedb","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],"deleted":[{"grantor":"enterprisedb","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
},
"expected_sql_file": "alter_default_db_privileges_reset_all.sql"
},
{
"type": "alter",
"name": "Alert default privileges with new user add for function, table, sequence and type",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]},
"deftypeacl": {"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]},
"deftblacl":{"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]},
"defseqacl":{"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]}
},
"expected_msql_file": "alter_default_db_privileges_add_msql.sql",
"expected_sql_file": "alter_default_db_privileges_add_all.sql",
"pre_scenario_sql": "CREATE ROLE test_default_priv_user WITH NOLOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION NOBYPASSRLS;"
},
{
"type": "alter",
"name": "Alert default privileges with new user for function, table, sequence and type",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"deftypeacl": {"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"deftblacl":{
"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"D","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],
"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"d","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"defseqacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false}], "grantor":"enterprisedb"}],
"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]}
},
"expected_msql_file": "alter_default_db_privileges_all_msql.sql",
"expected_sql_file": "alter_default_db_privileges_all.sql"
},
{
"type": "alter",
"name": "Alert default privileges with new user reset all",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"deftypeacl": {"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"deftblacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"D","privilege":true,"with_grant":false}, {"privilege_type":"d","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"defseqacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]}
},
"expected_sql_file": "alter_default_db_privileges_newuser_reset_all.sql",
"post_scenario_sql": "DROP ROLE IF EXISTS test_default_priv_user;"
},
{
"type": "create",
"name": "Create Database with new options and libc",

View File

@@ -0,0 +1,31 @@
-- Database: <TEST_DB_NAME>
-- DROP DATABASE IF EXISTS <TEST_DB_NAME>;
CREATE DATABASE <TEST_DB_NAME>
WITH
OWNER = enterprisedb
ENCODING = 'UTF8'
LC_COLLATE = '<LC_COLLATE>'
LC_CTYPE = '<LC_CTYPE>'
LOCALE_PROVIDER = 'libc'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE ALL ON TABLES FROM enterprisedb;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON TABLES TO enterprisedb;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT DELETE, MAINTAIN, UPDATE ON TABLES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT SELECT, UPDATE ON SEQUENCES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT EXECUTE ON FUNCTIONS TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT USAGE ON TYPES TO test_default_priv_user;

View File

@@ -0,0 +1,12 @@
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT EXECUTE ON FUNCTIONS TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT DELETE, MAINTAIN, UPDATE ON TABLES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT SELECT, UPDATE ON SEQUENCES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT USAGE ON TYPES TO test_default_priv_user;

View File

@@ -0,0 +1,33 @@
-- Database: <TEST_DB_NAME>
-- DROP DATABASE IF EXISTS <TEST_DB_NAME>;
CREATE DATABASE <TEST_DB_NAME>
WITH
OWNER = enterprisedb
ENCODING = 'UTF8'
LC_COLLATE = 'C'
LC_CTYPE = 'C'
LOCALE_PROVIDER = 'libc'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE ALL ON TABLES FROM enterprisedb;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON TABLES TO enterprisedb;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT TRUNCATE ON TABLES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT MAINTAIN ON TABLES TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT UPDATE ON SEQUENCES TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT EXECUTE ON FUNCTIONS TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT USAGE ON TYPES TO test_default_priv_user WITH GRANT OPTION;

View File

@@ -0,0 +1,27 @@
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
REVOKE ALL ON FUNCTIONS FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT EXECUTE ON FUNCTIONS TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
REVOKE ALL ON TABLES FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
REVOKE ALL ON TABLES FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT MAINTAIN ON TABLES TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT TRUNCATE ON TABLES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
REVOKE ALL ON SEQUENCES FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
REVOKE ALL ON SEQUENCES FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT UPDATE ON SEQUENCES TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
REVOKE ALL ON TYPES FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT USAGE ON TYPES TO test_default_priv_user WITH GRANT OPTION;

View File

@@ -0,0 +1,19 @@
-- Database: <TEST_DB_NAME>
-- DROP DATABASE IF EXISTS <TEST_DB_NAME>;
CREATE DATABASE <TEST_DB_NAME>
WITH
OWNER = enterprisedb
ENCODING = 'UTF8'
LC_COLLATE = '<LC_COLLATE>'
LC_CTYPE = '<LC_CTYPE>'
LOCALE_PROVIDER = 'libc'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE ALL ON TABLES FROM enterprisedb;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON TABLES TO enterprisedb;

View File

@@ -0,0 +1,19 @@
-- Database: <TEST_DB_NAME>
-- DROP DATABASE IF EXISTS <TEST_DB_NAME>;
CREATE DATABASE <TEST_DB_NAME>
WITH
OWNER = enterprisedb
ENCODING = 'UTF8'
LC_COLLATE = '<LC_COLLATE>'
LC_CTYPE = '<LC_CTYPE>'
LOCALE_PROVIDER = 'libc'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE ALL ON TABLES FROM enterprisedb;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON TABLES TO enterprisedb;

View File

@@ -11,3 +11,5 @@ ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE ALL ON TABLES FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE ALL ON SEQUENCES FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE USAGE ON TYPES FROM PUBLIC;

View File

@@ -2,7 +2,7 @@
"scenarios": [
{
"type": "alter",
"name": "Alert default priviliges for functions",
"name": "Alert default privileges for functions",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
@@ -34,6 +34,7 @@
"name": "Alert default privileges for tables",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
@@ -64,6 +65,7 @@
]
}
},
"expected_msql_file": "alter_default_db_privileges_tables_msql.sql",
"expected_sql_file": "alter_default_db_privileges_tables.sql"
},
{
@@ -90,19 +92,21 @@
"acltype": "defaultacls"
}
],
"added":[{"grantee":"PUBLIC","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false},
"added":[
{"grantee":"PUBLIC","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false},
{"privilege_type":"r","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]
},
"deftblacl": {"deleted":[{"grantor":"enterprisedb","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
},
"expected_sql_file": "alter_default_db_privileges_sequences.sql",
"expected_msql_file": "alter_default_db_privileges_sequences_msql.sql"
"expected_msql_file": "alter_default_db_privileges_sequences_msql.sql",
"expected_sql_file": "alter_default_db_privileges_sequences.sql"
},
{
"type": "alter",
"name": "Alert default privileges for types",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
@@ -124,6 +128,7 @@
}
},
"expected_msql_file": "alter_default_db_privileges_types_msql.sql",
"expected_sql_file": "alter_default_db_privileges_types.sql"
},
{
@@ -136,11 +141,70 @@
"data": {
"deffuncacl": {"added":[{"grantee":"PUBLIC","privileges":[{"privilege_type":"X","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]},
"deftypeacl": {"added":[{"grantee":"PUBLIC","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]},
"deftblacl":{"added":[{"grantee":"enterprisedb","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false},{"privilege_type":"m","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],"deleted":[{"grantor":"enterprisedb","grantee":"PUBLIC","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false,"cid":"nn626"},{"privilege_type":"r","privilege":true,"with_grant":false,"cid":"nn627"},{"privilege_type":"w","privilege":true,"with_grant":false,"cid":"nn628"},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]},
"defseqacl":{"added":[{"grantee":"enterprisedb","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],"deleted":[{"grantor":"enterprisedb","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false,"cid":"nn673"},{"privilege_type":"U","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
"deftblacl":{"added":[{"grantee":"enterprisedb","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],"deleted":[{"grantor":"enterprisedb","grantee":"PUBLIC","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]},
"defseqacl":{"added":[{"grantee":"enterprisedb","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],"deleted":[{"grantor":"enterprisedb","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
},
"expected_sql_file": "alter_default_db_privileges_reset_all.sql"
},
{
"type": "alter",
"name": "Alert default privileges with new user add for function, table, sequence and type",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]},
"deftypeacl": {"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]},
"deftblacl":{"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"m","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]},
"defseqacl":{"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]}
},
"expected_msql_file": "alter_default_db_privileges_add_msql.sql",
"expected_sql_file": "alter_default_db_privileges_add_all.sql",
"pre_scenario_sql": "CREATE ROLE test_default_priv_user WITH NOLOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION NOBYPASSRLS;"
},
{
"type": "alter",
"name": "Alert default privileges with new user for function, table, sequence and type",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"deftypeacl": {"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"deftblacl":{
"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"D","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],
"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"m","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"defseqacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false}], "grantor":"enterprisedb"}],
"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]}
},
"expected_msql_file": "alter_default_db_privileges_all_msql.sql",
"expected_sql_file": "alter_default_db_privileges_all.sql"
},
{
"type": "alter",
"name": "Alert default privileges with new user reset all",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"deftypeacl": {"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"deftblacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"D","privilege":true,"with_grant":false}, {"privilege_type":"d","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"defseqacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]}
},
"expected_sql_file": "alter_default_db_privileges_newuser_reset_all.sql",
"post_scenario_sql": "DROP ROLE IF EXISTS test_default_priv_user;"
},
{
"type": "create",
"name": "Create Database with new options and libc",
@@ -596,4 +660,4 @@
}
}
]
}
}

View File

@@ -0,0 +1,25 @@
-- Database: <TEST_DB_NAME>
-- DROP DATABASE IF EXISTS <TEST_DB_NAME>;
CREATE DATABASE <TEST_DB_NAME>
WITH
OWNER = enterprisedb
ENCODING = 'UTF8'
LC_COLLATE = '<LC_COLLATE>'
LC_CTYPE = '<LC_CTYPE>'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT DELETE, INSERT, UPDATE ON TABLES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT SELECT, UPDATE ON SEQUENCES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT EXECUTE ON FUNCTIONS TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT USAGE ON TYPES TO test_default_priv_user;

View File

@@ -0,0 +1,12 @@
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT EXECUTE ON FUNCTIONS TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT DELETE, INSERT, UPDATE ON TABLES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT SELECT, UPDATE ON SEQUENCES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT USAGE ON TYPES TO test_default_priv_user;

View File

@@ -0,0 +1,27 @@
-- Database: <TEST_DB_NAME>
-- DROP DATABASE IF EXISTS <TEST_DB_NAME>;
CREATE DATABASE <TEST_DB_NAME>
WITH
OWNER = enterprisedb
ENCODING = 'UTF8'
LC_COLLATE = 'C'
LC_CTYPE = 'C'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT TRUNCATE ON TABLES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT DELETE ON TABLES TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT UPDATE ON SEQUENCES TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT EXECUTE ON FUNCTIONS TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT USAGE ON TYPES TO test_default_priv_user WITH GRANT OPTION;

View File

@@ -0,0 +1,27 @@
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
REVOKE ALL ON FUNCTIONS FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT EXECUTE ON FUNCTIONS TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
REVOKE ALL ON TABLES FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
REVOKE ALL ON TABLES FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT DELETE ON TABLES TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT TRUNCATE ON TABLES TO test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
REVOKE ALL ON SEQUENCES FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
REVOKE ALL ON SEQUENCES FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT UPDATE ON SEQUENCES TO test_default_priv_user WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
REVOKE ALL ON TYPES FROM test_default_priv_user;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT USAGE ON TYPES TO test_default_priv_user WITH GRANT OPTION;

View File

@@ -0,0 +1,13 @@
-- Database: <TEST_DB_NAME>
-- DROP DATABASE IF EXISTS <TEST_DB_NAME>;
CREATE DATABASE <TEST_DB_NAME>
WITH
OWNER = enterprisedb
ENCODING = 'UTF8'
LC_COLLATE = '<LC_COLLATE>'
LC_CTYPE = '<LC_CTYPE>'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;

View File

@@ -6,4 +6,4 @@ ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
REVOKE ALL ON SEQUENCES FROM enterprisedb;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT USAGE, SELECT ON SEQUENCES TO PUBLIC;
GRANT SELECT, USAGE ON SEQUENCES TO PUBLIC;

View File

@@ -1,6 +1,6 @@
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
REVOKE ALL ON TABLES FROM PUBLIC;
REVOKE ALL ON TABLES FROM enterprisedb;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT SELECT ON TABLES TO PUBLIC;

View File

@@ -20,3 +20,5 @@ ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
GRANT SELECT, USAGE ON SEQUENCES TO PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE USAGE ON TYPES FROM PUBLIC;

View File

@@ -0,0 +1,4 @@
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
REVOKE ALL ON TYPES FROM PUBLIC;

View File

@@ -2,7 +2,7 @@
"scenarios": [
{
"type": "alter",
"name": "Alert default priviliges for functions",
"name": "Alert default privileges for functions",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
@@ -34,6 +34,7 @@
"name": "Alert default privileges for tables",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
@@ -64,6 +65,7 @@
]
}
},
"expected_msql_file": "alter_default_db_privileges_tables_msql.sql",
"expected_sql_file": "alter_default_db_privileges_tables.sql"
},
{
@@ -90,20 +92,21 @@
"acltype": "defaultacls"
}
],
"added":[{"grantee":"PUBLIC","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false},
"added":[
{"grantee":"PUBLIC","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false},
{"privilege_type":"r","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]
},
"deftblacl": {"deleted":[{"grantor":"enterprisedb","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
},
"expected_sql_file": "alter_default_db_privileges_sequences.sql",
"expected_msql_file": "alter_default_db_privileges_sequences_msql.sql"
"expected_msql_file": "alter_default_db_privileges_sequences_msql.sql",
"expected_sql_file": "alter_default_db_privileges_sequences.sql"
},
{
"type": "alter",
"name": "Alert default privileges for types",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
@@ -125,6 +128,7 @@
}
},
"expected_msql_file": "alter_default_db_privileges_types_msql.sql",
"expected_sql_file": "alter_default_db_privileges_types.sql"
},
{
@@ -137,10 +141,69 @@
"data": {
"deffuncacl": {"added":[{"grantee":"PUBLIC","privileges":[{"privilege_type":"X","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]},
"deftypeacl": {"added":[{"grantee":"PUBLIC","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]},
"deftblacl":{"added":[{"grantee":"enterprisedb","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],"deleted":[{"grantor":"enterprisedb","grantee":"PUBLIC","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false,"cid":"nn626"},{"privilege_type":"r","privilege":true,"with_grant":false,"cid":"nn627"},{"privilege_type":"w","privilege":true,"with_grant":false,"cid":"nn628"},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]},
"defseqacl":{"added":[{"grantee":"enterprisedb","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],"deleted":[{"grantor":"enterprisedb","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false,"cid":"nn673"},{"privilege_type":"U","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
"deftblacl":{"added":[{"grantee":"enterprisedb","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],"deleted":[{"grantor":"enterprisedb","grantee":"PUBLIC","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false},{"privilege_type":"D","privilege":true,"with_grant":false},{"privilege_type":"x","privilege":true,"with_grant":false},{"privilege_type":"t","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]},
"defseqacl":{"added":[{"grantee":"enterprisedb","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],"deleted":[{"grantor":"enterprisedb","grantee":"PUBLIC","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"U","privilege":true,"with_grant":false}],"acltype":"defaultacls"}]}
},
"expected_sql_file": "alter_default_db_privileges_reset_all.sql"
},
{
"type": "alter",
"name": "Alert default privileges with new user add for function, table, sequence and type",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]},
"deftypeacl": {"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]},
"deftblacl":{"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"a","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false},{"privilege_type":"d","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]},
"defseqacl":{"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false},{"privilege_type":"w","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}]}
},
"expected_msql_file": "alter_default_db_privileges_add_msql.sql",
"expected_sql_file": "alter_default_db_privileges_add_all.sql",
"pre_scenario_sql": "CREATE ROLE test_default_priv_user WITH NOLOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION NOBYPASSRLS;"
},
{
"type": "alter",
"name": "Alert default privileges with new user for function, table, sequence and type",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"deftypeacl": {"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"deftblacl":{
"added":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"D","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":false}],"grantor":"enterprisedb"}],
"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"d","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"defseqacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"r","privilege":true,"with_grant":false}], "grantor":"enterprisedb"}],
"changed":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]}
},
"expected_msql_file": "alter_default_db_privileges_all_msql.sql",
"expected_sql_file": "alter_default_db_privileges_all.sql"
},
{
"type": "alter",
"name": "Alert default privileges with new user reset all",
"endpoint": "NODE-database.obj_id",
"sql_endpoint": "NODE-database.sql_id",
"msql_endpoint": "NODE-database.msql_id",
"TEST_DB_NAME": "<TEST_DB_NAME>",
"REPLACE_LOCALE": true,
"data": {
"deffuncacl": {"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"X","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"deftypeacl": {"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"U","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"deftblacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"D","privilege":true,"with_grant":false}, {"privilege_type":"d","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]},
"defseqacl":{
"deleted":[{"grantee":"test_default_priv_user","privileges":[{"privilege_type":"w","privilege":true,"with_grant":true}],"grantor":"enterprisedb"}]}
},
"expected_sql_file": "alter_default_db_privileges_newuser_reset_all.sql",
"post_scenario_sql": "DROP ROLE IF EXISTS test_default_priv_user;"
}
]
}

View File

@@ -1,11 +1,11 @@
{% macro APPLY(conn, type, role, privs, with_grant_privs, grantor) -%}
{% if privs %}
ALTER DEFAULT PRIVILEGES FOR ROLE {{grantor}}
GRANT {{ privs|join(', ') }} ON {{ type }} TO {{ role }};
GRANT {{ privs|sort|join(', ') }} ON {{ type }} TO {{ role }};
{% endif %}
{% if with_grant_privs %}
ALTER DEFAULT PRIVILEGES FOR ROLE {{grantor}}
GRANT {{ with_grant_privs|join(', ') }} ON {{ type }} TO {{ role }} WITH GRANT OPTION;
GRANT {{ with_grant_privs|sort|join(', ') }} ON {{ type }} TO {{ role }} WITH GRANT OPTION;
{% endif %}
{%- endmacro %}
{% macro RESETALL(conn, type, role, grantor) -%}
@@ -16,11 +16,11 @@ ALTER DEFAULT PRIVILEGES FOR ROLE {{grantor}}
{% macro SET(conn, db_object_type, db_object_name, type, role, privs, with_grant_privs, grantor) -%}
{% if privs %}
ALTER DEFAULT PRIVILEGES FOR ROLE {{grantor}} IN {{ db_object_type }} {{ conn|qtIdent(db_object_name) }}
GRANT {{ privs|join(', ') }} ON {{ type }} TO {{ role }};
GRANT {{ privs|sort|join(', ') }} ON {{ type }} TO {{ role }};
{% endif %}
{% if with_grant_privs %}
ALTER DEFAULT PRIVILEGES FOR ROLE {{grantor}} IN {{ db_object_type }} {{ conn|qtIdent(db_object_name) }}
GRANT {{ with_grant_privs|join(', ') }} ON {{ type }} TO {{ role }} WITH GRANT OPTION;
GRANT {{ with_grant_privs|sort|join(', ') }} ON {{ type }} TO {{ role }} WITH GRANT OPTION;
{% endif %}
{%- endmacro %}
{% macro UNSET(conn, db_object_type, db_object_name, type, role, grantor) -%}
@@ -30,9 +30,9 @@ ALTER DEFAULT PRIVILEGES FOR ROLE {{grantor}} IN {{ db_object_type }} {{ conn|qt
{% macro REMOVE(conn, type, role, privs, with_grant_privs, grantor) -%}
{% if privs %}
ALTER DEFAULT PRIVILEGES FOR ROLE {{grantor}} REVOKE {{ privs|join(', ') }} ON {{ type }} FROM {{ role }};
ALTER DEFAULT PRIVILEGES FOR ROLE {{grantor}} REVOKE {{ privs|sort|join(', ') }} ON {{ type }} FROM {{ role }};
{% endif %}
{% if with_grant_privs %}
ALTER DEFAULT PRIVILEGES FOR ROLE {{grantor}} REVOKE {{ with_grant_privs|join(', ') }} ON {{ type }} FROM {{ role }} WITH GRANT OPTION;
ALTER DEFAULT PRIVILEGES FOR ROLE {{grantor}} REVOKE {{ with_grant_privs|sort|join(', ') }} ON {{ type }} FROM {{ role }} WITH GRANT OPTION;
{% endif %}
{%- endmacro %}

View File

@@ -1280,6 +1280,7 @@ const StyledNotifierMessageBox = styled(Box)(({theme}) => ({
'& .FormFooter-message': {
color: theme.palette.text.primary,
marginLeft: theme.spacing(0.5),
whiteSpace: 'pre-line'
},
'& .FormFooter-messageCenter': {
color: theme.palette.text.primary,

View File

@@ -50,7 +50,7 @@ export function useModal() {
function AlertContent({ text, confirm, okLabel = gettext('OK'), cancelLabel = gettext('Cancel'), onOkClick, onCancelClick, okIcon = 'default'}) {
return (
<StyledBox display="flex" flexDirection="column" height="100%">
<Box flexGrow="1" p={2}>{typeof (text) == 'string' ? HTMLReactParser(text) : text}</Box>
<Box flexGrow="1" p={2} whiteSpace='pre-line'>{typeof (text) == 'string' ? HTMLReactParser(text) : text}</Box>
<Box className='Alert-footer'>
{confirm &&
<DefaultButton startIcon={<CloseIcon />} onClick={onCancelClick}>{cancelLabel}</DefaultButton>

View File

@@ -40,7 +40,6 @@ from pgadmin.utils.master_password import get_crypt_key
from io import StringIO
from pgadmin.utils.locker import ConnectionLocker
from pgadmin.utils.driver import get_driver
from pgadmin.browser.utils import underscore_escape
# On Windows, Psycopg is not compatible with the default ProactorEventLoop.
@@ -1689,7 +1688,6 @@ Failed to reset the connection to the server due to following error:
# if formatted_msg is false then return from the function
if not formatted_msg:
notices = self.get_notices()
errmsg = underscore_escape(errmsg).replace('\n', '<br/>')
return errmsg if notices == '' else notices + '\n' + errmsg
# Do not append if error starts with `ERROR:` as most pg related

View File

@@ -21,6 +21,7 @@ from pgadmin.browser.server_groups.servers.databases.tests import \
from pgadmin.utils.versioned_template_loader import \
get_version_mapping_directories
from pgadmin.utils.constants import DBMS_JOB_SCHEDULER_ID
from regression.python_test_utils.test_utils import set_isolation_level
def create_resql_module_list(all_modules, exclude_pkgs, for_modules):
@@ -255,6 +256,10 @@ class ReverseEngineeredSQLTestCases(BaseTestGenerator):
# Check precondition for schema
self.check_schema_precondition(scenario)
if 'pre_scenario_sql' in scenario:
self.execute_prepost_sql(
scenario['pre_scenario_sql'], False)
# Preprocessed data to replace any place holder if available
if 'preprocess_data' in scenario and \
scenario['preprocess_data'] and 'data' in scenario:
@@ -363,6 +368,10 @@ class ReverseEngineeredSQLTestCases(BaseTestGenerator):
traceback.print_exc()
continue
if 'post_scenario_sql' in scenario:
self.execute_prepost_sql(
scenario['post_scenario_sql'], False)
print(scenario['name'] + "... ok")
except Exception as _:
print(scenario['name'] + "... FAIL")
@@ -599,6 +608,30 @@ class ReverseEngineeredSQLTestCases(BaseTestGenerator):
pg_cursor.close()
return precondition_flag
def execute_prepost_sql(self, sql, use_test_config_db_conn):
"""
This method executes post_condition_sql
:param post_condition_sql: SQL query
:param use_test_config_db_conn
"""
if use_test_config_db_conn:
conn = self.test_config_db_conn
pg_cursor = self.test_config_db_conn.cursor()
else:
self.get_db_connection()
conn = self.connection
pg_cursor = self.connection.cursor()
try:
old_isolation_level = conn.isolation_level
set_isolation_level(conn, 0)
pg_cursor.execute(sql)
set_isolation_level(conn, old_isolation_level)
conn.commit()
except Exception as e:
traceback.print_exc()
pg_cursor.close()
def check_schema_precondition(self, scenario):
"""
This function will check the given schema is exist or not. If exist