Fixed an issue where SQL for revoke statements are not shown for databases. Fixes #4258
parent
7ecc0169df
commit
7f2ff5af5c
|
@ -20,6 +20,7 @@ Housekeeping
|
||||||
Bug fixes
|
Bug fixes
|
||||||
*********
|
*********
|
||||||
|
|
||||||
|
| `Issue #4258 <https://redmine.postgresql.org/issues/4258>`_ - Fixed an issue where SQL for revoke statements are not shown for databases.
|
||||||
| `Issue #7059 <https://redmine.postgresql.org/issues/7059>`_ - Fixed an issue where the error is shown on logout when the authentication source is oauth2.
|
| `Issue #7059 <https://redmine.postgresql.org/issues/7059>`_ - Fixed an issue where the error is shown on logout when the authentication source is oauth2.
|
||||||
| `Issue #7197 <https://redmine.postgresql.org/issues/7197>`_ - Fixed an issue where foreign key relationships do not update when the primary key is modified.
|
| `Issue #7197 <https://redmine.postgresql.org/issues/7197>`_ - Fixed an issue where foreign key relationships do not update when the primary key is modified.
|
||||||
| `Issue #7216 <https://redmine.postgresql.org/issues/7216>`_ - Ensure that the values of certain fields are prettified in the statistics tab for collection nodes.
|
| `Issue #7216 <https://redmine.postgresql.org/issues/7216>`_ - Ensure that the values of certain fields are prettified in the statistics tab for collection nodes.
|
||||||
|
|
|
@ -426,7 +426,7 @@ class DatabaseView(PGChildNodeView):
|
||||||
|
|
||||||
SQL = render_template(
|
SQL = render_template(
|
||||||
"/".join([self.template_path, 'defacl.sql']),
|
"/".join([self.template_path, 'defacl.sql']),
|
||||||
did=did, conn=self.conn
|
did=did, conn=self.conn, grant_reovke_sql=False
|
||||||
)
|
)
|
||||||
status, defaclres = self.conn.execute_dict(SQL)
|
status, defaclres = self.conn.execute_dict(SQL)
|
||||||
if not status:
|
if not status:
|
||||||
|
@ -1172,7 +1172,7 @@ class DatabaseView(PGChildNodeView):
|
||||||
|
|
||||||
SQL = render_template(
|
SQL = render_template(
|
||||||
"/".join([self.template_path, 'defacl.sql']),
|
"/".join([self.template_path, 'defacl.sql']),
|
||||||
did=did, conn=self.conn
|
did=did, conn=self.conn, grant_reovke_sql=True
|
||||||
)
|
)
|
||||||
status, defaclres = self.conn.execute_dict(SQL)
|
status, defaclres = self.conn.execute_dict(SQL)
|
||||||
if not status:
|
if not status:
|
||||||
|
|
|
@ -27,7 +27,7 @@ COMMENT ON SCHEMA {{ conn|qtIdent(data.name) }}
|
||||||
|
|
||||||
{{ DEFAULT_PRIVILEGE.SET(
|
{{ DEFAULT_PRIVILEGE.SET(
|
||||||
conn, 'SCHEMA', data.name, type, priv.grantee,
|
conn, 'SCHEMA', data.name, type, priv.grantee,
|
||||||
priv.without_grant, priv.with_grant
|
priv.without_grant, priv.with_grant, priv.grantor
|
||||||
) }}{% endfor %}
|
) }}{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
|
@ -50,22 +50,22 @@ COMMENT ON SCHEMA {{ conn|qtIdent(data.name) }}
|
||||||
{% if data[defacl] %}{% set acl = data[defacl] %}
|
{% if data[defacl] %}{% set acl = data[defacl] %}
|
||||||
{% if 'deleted' in acl %}
|
{% if 'deleted' in acl %}
|
||||||
{% for priv in acl.deleted %}
|
{% for priv in acl.deleted %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, type, priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, type, priv.grantee, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'changed' in acl %}
|
{% if 'changed' in acl %}
|
||||||
{% for priv in acl.changed %}
|
{% for priv in acl.changed %}
|
||||||
{% if priv.grantee != priv.old_grantee %}
|
{% if priv.grantee != priv.old_grantee %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, type, priv.old_grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, type, priv.old_grantee, priv.grantor) }}
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, type, priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, type, priv.grantee, priv.grantor) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, type, priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, type, priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'added' in acl %}
|
{% if 'added' in acl %}
|
||||||
{% for priv in acl.added %}
|
{% for priv in acl.added %}
|
||||||
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, type, priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, type, priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -27,7 +27,7 @@ COMMENT ON SCHEMA {{ conn|qtIdent(data.name) }}
|
||||||
|
|
||||||
{{ DEFAULT_PRIVILEGE.SET(
|
{{ DEFAULT_PRIVILEGE.SET(
|
||||||
conn, 'SCHEMA', data.name, type, priv.grantee,
|
conn, 'SCHEMA', data.name, type, priv.grantee,
|
||||||
priv.without_grant, priv.with_grant
|
priv.without_grant, priv.with_grant, priv.grantor
|
||||||
) }}{% endfor %}
|
) }}{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
|
@ -50,22 +50,22 @@ COMMENT ON SCHEMA {{ conn|qtIdent(data.name) }}
|
||||||
{% if data[defacl] %}{% set acl = data[defacl] %}
|
{% if data[defacl] %}{% set acl = data[defacl] %}
|
||||||
{% if 'deleted' in acl %}
|
{% if 'deleted' in acl %}
|
||||||
{% for priv in acl.deleted %}
|
{% for priv in acl.deleted %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, type, priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, type, priv.grantee, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'changed' in acl %}
|
{% if 'changed' in acl %}
|
||||||
{% for priv in acl.changed %}
|
{% for priv in acl.changed %}
|
||||||
{% if priv.grantee != priv.old_grantee %}
|
{% if priv.grantee != priv.old_grantee %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, type, priv.old_grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, type, priv.old_grantee, priv.grantor) }}
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, type, priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, type, priv.grantee, priv.grantor) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, type, priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, type, priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'added' in acl %}
|
{% if 'added' in acl %}
|
||||||
{% for priv in acl.added %}
|
{% for priv in acl.added %}
|
||||||
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, type, priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, type, priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -27,7 +27,7 @@ COMMENT ON SCHEMA {{ conn|qtIdent(data.name) }}
|
||||||
|
|
||||||
{{ DEFAULT_PRIVILEGE.SET(
|
{{ DEFAULT_PRIVILEGE.SET(
|
||||||
conn, 'SCHEMA', data.name, type, priv.grantee,
|
conn, 'SCHEMA', data.name, type, priv.grantee,
|
||||||
priv.without_grant, priv.with_grant
|
priv.without_grant, priv.with_grant, priv.grantor
|
||||||
) }}{% endfor %}
|
) }}{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
|
@ -69,22 +69,22 @@ COMMENT ON SCHEMA {{ conn|qtIdent(data.name) }}
|
||||||
{% if data.deftblacl %}
|
{% if data.deftblacl %}
|
||||||
{% if 'deleted' in data.deftblacl %}
|
{% if 'deleted' in data.deftblacl %}
|
||||||
{% for priv in data.deftblacl.deleted %}
|
{% for priv in data.deftblacl.deleted %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, 'TABLES', priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, 'TABLES', priv.grantee, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'changed' in data.deftblacl %}
|
{% if 'changed' in data.deftblacl %}
|
||||||
{% for priv in data.deftblacl.changed %}
|
{% for priv in data.deftblacl.changed %}
|
||||||
{% if priv.grantee != priv.old_grantee %}
|
{% if priv.grantee != priv.old_grantee %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, 'TABLES', priv.old_grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, 'TABLES', priv.old_grantee, priv.grantor) }}
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, 'TABLES', priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, 'TABLES', priv.grantee, priv.grantor) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'TABLES', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'TABLES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'added' in data.deftblacl %}
|
{% if 'added' in data.deftblacl %}
|
||||||
{% for priv in data.deftblacl.added %}
|
{% for priv in data.deftblacl.added %}
|
||||||
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'TABLES', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'TABLES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
@ -93,18 +93,18 @@ COMMENT ON SCHEMA {{ conn|qtIdent(data.name) }}
|
||||||
{% if data.defseqacl %}
|
{% if data.defseqacl %}
|
||||||
{% if 'deleted' in data.defseqacl %}
|
{% if 'deleted' in data.defseqacl %}
|
||||||
{% for priv in data.defseqacl.deleted %}
|
{% for priv in data.defseqacl.deleted %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn,'SCHEMA', data.name, 'SEQUENCES', priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn,'SCHEMA', data.name, 'SEQUENCES', priv.grantee, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'changed' in data.defseqacl %}
|
{% if 'changed' in data.defseqacl %}
|
||||||
{% for priv in data.defseqacl.changed %}
|
{% for priv in data.defseqacl.changed %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn,'SCHEMA', data.name, 'SEQUENCES', priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn,'SCHEMA', data.name, 'SEQUENCES', priv.grantee, priv.grantor) }}
|
||||||
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'SEQUENCES', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'SEQUENCES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'added' in data.defseqacl %}
|
{% if 'added' in data.defseqacl %}
|
||||||
{% for priv in data.defseqacl.added %}
|
{% for priv in data.defseqacl.added %}
|
||||||
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'SEQUENCES', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'SEQUENCES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
@ -113,18 +113,18 @@ COMMENT ON SCHEMA {{ conn|qtIdent(data.name) }}
|
||||||
{% if data.deffuncacl %}
|
{% if data.deffuncacl %}
|
||||||
{% if 'deleted' in data.deffuncacl %}
|
{% if 'deleted' in data.deffuncacl %}
|
||||||
{% for priv in data.deffuncacl.deleted %}
|
{% for priv in data.deffuncacl.deleted %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn,'SCHEMA', data.name, 'FUNCTIONS', priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn,'SCHEMA', data.name, 'FUNCTIONS', priv.grantee, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'changed' in data.deffuncacl %}
|
{% if 'changed' in data.deffuncacl %}
|
||||||
{% for priv in data.deffuncacl.changed %}
|
{% for priv in data.deffuncacl.changed %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn,'SCHEMA', data.name, 'FUNCTIONS', priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn,'SCHEMA', data.name, 'FUNCTIONS', priv.grantee, priv.grantor) }}
|
||||||
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'FUNCTIONS', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'FUNCTIONS', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'added' in data.deffuncacl %}
|
{% if 'added' in data.deffuncacl %}
|
||||||
{% for priv in data.deffuncacl.added %}
|
{% for priv in data.deffuncacl.added %}
|
||||||
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'FUNCTIONS', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'FUNCTIONS', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ COMMENT ON SCHEMA {{ conn|qtIdent(data.name) }}
|
||||||
|
|
||||||
{{ DEFAULT_PRIVILEGE.SET(
|
{{ DEFAULT_PRIVILEGE.SET(
|
||||||
conn, 'SCHEMA', data.name, type, priv.grantee,
|
conn, 'SCHEMA', data.name, type, priv.grantee,
|
||||||
priv.without_grant, priv.with_grant
|
priv.without_grant, priv.with_grant, priv.grantor
|
||||||
) }}{% endfor %}
|
) }}{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
|
@ -69,22 +69,22 @@ COMMENT ON SCHEMA {{ conn|qtIdent(data.name) }}
|
||||||
{% if data.deftblacl %}
|
{% if data.deftblacl %}
|
||||||
{% if 'deleted' in data.deftblacl %}
|
{% if 'deleted' in data.deftblacl %}
|
||||||
{% for priv in data.deftblacl.deleted %}
|
{% for priv in data.deftblacl.deleted %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, 'TABLES', priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, 'TABLES', priv.grantee, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'changed' in data.deftblacl %}
|
{% if 'changed' in data.deftblacl %}
|
||||||
{% for priv in data.deftblacl.changed %}
|
{% for priv in data.deftblacl.changed %}
|
||||||
{% if priv.grantee != priv.old_grantee %}
|
{% if priv.grantee != priv.old_grantee %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, 'TABLES', priv.old_grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, 'TABLES', priv.old_grantee, priv.grantor) }}
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, 'TABLES', priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn, 'SCHEMA', data.name, 'TABLES', priv.grantee, priv.grantor) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'TABLES', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'TABLES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'added' in data.deftblacl %}
|
{% if 'added' in data.deftblacl %}
|
||||||
{% for priv in data.deftblacl.added %}
|
{% for priv in data.deftblacl.added %}
|
||||||
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'TABLES', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'TABLES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
@ -93,18 +93,18 @@ COMMENT ON SCHEMA {{ conn|qtIdent(data.name) }}
|
||||||
{% if data.defseqacl %}
|
{% if data.defseqacl %}
|
||||||
{% if 'deleted' in data.defseqacl %}
|
{% if 'deleted' in data.defseqacl %}
|
||||||
{% for priv in data.defseqacl.deleted %}
|
{% for priv in data.defseqacl.deleted %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn,'SCHEMA', data.name, 'SEQUENCES', priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn,'SCHEMA', data.name, 'SEQUENCES', priv.grantee, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'changed' in data.defseqacl %}
|
{% if 'changed' in data.defseqacl %}
|
||||||
{% for priv in data.defseqacl.changed %}
|
{% for priv in data.defseqacl.changed %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn,'SCHEMA', data.name, 'SEQUENCES', priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn,'SCHEMA', data.name, 'SEQUENCES', priv.grantee, priv.grantor) }}
|
||||||
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'SEQUENCES', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'SEQUENCES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'added' in data.defseqacl %}
|
{% if 'added' in data.defseqacl %}
|
||||||
{% for priv in data.defseqacl.added %}
|
{% for priv in data.defseqacl.added %}
|
||||||
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'SEQUENCES', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'SEQUENCES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
@ -113,18 +113,18 @@ COMMENT ON SCHEMA {{ conn|qtIdent(data.name) }}
|
||||||
{% if data.deffuncacl %}
|
{% if data.deffuncacl %}
|
||||||
{% if 'deleted' in data.deffuncacl %}
|
{% if 'deleted' in data.deffuncacl %}
|
||||||
{% for priv in data.deffuncacl.deleted %}
|
{% for priv in data.deffuncacl.deleted %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn,'SCHEMA', data.name, 'FUNCTIONS', priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn,'SCHEMA', data.name, 'FUNCTIONS', priv.grantee, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'changed' in data.deffuncacl %}
|
{% if 'changed' in data.deffuncacl %}
|
||||||
{% for priv in data.deffuncacl.changed %}
|
{% for priv in data.deffuncacl.changed %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn,'SCHEMA', data.name, 'FUNCTIONS', priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn,'SCHEMA', data.name, 'FUNCTIONS', priv.grantee, priv.grantor) }}
|
||||||
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'FUNCTIONS', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'FUNCTIONS', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'added' in data.deffuncacl %}
|
{% if 'added' in data.deffuncacl %}
|
||||||
{% for priv in data.deffuncacl.added %}
|
{% for priv in data.deffuncacl.added %}
|
||||||
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'FUNCTIONS', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'FUNCTIONS', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
@ -133,18 +133,18 @@ COMMENT ON SCHEMA {{ conn|qtIdent(data.name) }}
|
||||||
{% if data.deftypeacl %}
|
{% if data.deftypeacl %}
|
||||||
{% if 'deleted' in data.deftypeacl %}
|
{% if 'deleted' in data.deftypeacl %}
|
||||||
{% for priv in data.deftypeacl.deleted %}
|
{% for priv in data.deftypeacl.deleted %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn,'SCHEMA', data.name, 'TYPES', priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn,'SCHEMA', data.name, 'TYPES', priv.grantee, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'changed' in data.deftypeacl %}
|
{% if 'changed' in data.deftypeacl %}
|
||||||
{% for priv in data.deftypeacl.changed %}
|
{% for priv in data.deftypeacl.changed %}
|
||||||
{{ DEFAULT_PRIVILEGE.UNSET(conn,'SCHEMA', data.name, 'TYPES', priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.UNSET(conn,'SCHEMA', data.name, 'TYPES', priv.grantee, priv.grantor) }}
|
||||||
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'TYPES', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'TYPES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'added' in data.deftypeacl %}
|
{% if 'added' in data.deftypeacl %}
|
||||||
{% for priv in data.deftypeacl.added %}
|
{% for priv in data.deftypeacl.added %}
|
||||||
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'TYPES', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.SET(conn,'SCHEMA', data.name, 'TYPES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
|
@ -9,14 +9,14 @@ GRANT CREATE ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO PUBLIC;
|
||||||
|
|
||||||
GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO postgres;
|
GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO postgres;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT SELECT, UPDATE ON TABLES TO PUBLIC;
|
GRANT SELECT, UPDATE ON TABLES TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT SELECT, UPDATE ON SEQUENCES TO PUBLIC;
|
GRANT SELECT, UPDATE ON SEQUENCES TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT USAGE ON TYPES TO PUBLIC;
|
GRANT USAGE ON TYPES TO PUBLIC;
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
GRANT CREATE ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO PUBLIC;
|
GRANT CREATE ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT SELECT, UPDATE ON TABLES TO PUBLIC;
|
GRANT SELECT, UPDATE ON TABLES TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT SELECT, UPDATE ON SEQUENCES TO PUBLIC;
|
GRANT SELECT, UPDATE ON SEQUENCES TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT USAGE ON TYPES TO PUBLIC;
|
GRANT USAGE ON TYPES TO PUBLIC;
|
||||||
|
|
|
@ -7,8 +7,8 @@ CREATE SCHEMA IF NOT EXISTS "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
|
|
||||||
GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO postgres;
|
GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO postgres;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT SELECT ON TABLES TO PUBLIC;
|
GRANT SELECT ON TABLES TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
REVOKE ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" FROM PUBLIC;
|
REVOKE ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" FROM PUBLIC;
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
REVOKE ALL ON SEQUENCES FROM PUBLIC;
|
REVOKE ALL ON SEQUENCES FROM PUBLIC;
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
REVOKE ALL ON TYPES FROM PUBLIC;
|
REVOKE ALL ON TYPES FROM PUBLIC;
|
||||||
|
|
|
@ -9,14 +9,14 @@ GRANT USAGE ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO PUBLIC;
|
||||||
|
|
||||||
GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO postgres;
|
GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO postgres;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT SELECT ON TABLES TO PUBLIC;
|
GRANT SELECT ON TABLES TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT UPDATE ON SEQUENCES TO PUBLIC;
|
GRANT UPDATE ON SEQUENCES TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT USAGE ON TYPES TO PUBLIC;
|
GRANT USAGE ON TYPES TO PUBLIC;
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
REVOKE ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" FROM PUBLIC;
|
REVOKE ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" FROM PUBLIC;
|
||||||
GRANT USAGE ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO PUBLIC;
|
GRANT USAGE ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
REVOKE ALL ON TABLES FROM PUBLIC;
|
REVOKE ALL ON TABLES FROM PUBLIC;
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT SELECT ON TABLES TO PUBLIC;
|
GRANT SELECT ON TABLES TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
REVOKE ALL ON SEQUENCES FROM PUBLIC;
|
REVOKE ALL ON SEQUENCES FROM PUBLIC;
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT UPDATE ON SEQUENCES TO PUBLIC;
|
GRANT UPDATE ON SEQUENCES TO PUBLIC;
|
||||||
|
|
|
@ -12,14 +12,14 @@ GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO PUBLIC;
|
||||||
|
|
||||||
GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO postgres;
|
GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO postgres;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT ALL ON TABLES TO PUBLIC;
|
GRANT ALL ON TABLES TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT ALL ON SEQUENCES TO PUBLIC;
|
GRANT ALL ON SEQUENCES TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT USAGE ON TYPES TO PUBLIC;
|
GRANT USAGE ON TYPES TO PUBLIC;
|
||||||
|
|
|
@ -5,14 +5,14 @@ COMMENT ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
|
|
||||||
GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO PUBLIC;
|
GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT ALL ON TABLES TO PUBLIC;
|
GRANT ALL ON TABLES TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT ALL ON SEQUENCES TO PUBLIC;
|
GRANT ALL ON SEQUENCES TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT USAGE ON TYPES TO PUBLIC;
|
GRANT USAGE ON TYPES TO PUBLIC;
|
||||||
|
|
|
@ -9,14 +9,14 @@ GRANT CREATE ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO PUBLIC;
|
||||||
|
|
||||||
GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO enterprisedb;
|
GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO enterprisedb;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT SELECT, UPDATE ON TABLES TO PUBLIC;
|
GRANT SELECT, UPDATE ON TABLES TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT SELECT, UPDATE ON SEQUENCES TO PUBLIC;
|
GRANT SELECT, UPDATE ON SEQUENCES TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT USAGE ON TYPES TO PUBLIC;
|
GRANT USAGE ON TYPES TO PUBLIC;
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
GRANT CREATE ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO PUBLIC;
|
GRANT CREATE ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO PUBLIC;
|
||||||
|
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT SELECT, UPDATE ON TABLES TO PUBLIC;
|
GRANT SELECT, UPDATE ON TABLES TO PUBLIC;
|
||||||
|
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT SELECT, UPDATE ON SEQUENCES TO PUBLIC;
|
GRANT SELECT, UPDATE ON SEQUENCES TO PUBLIC;
|
||||||
|
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
||||||
|
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT USAGE ON TYPES TO PUBLIC;
|
GRANT USAGE ON TYPES TO PUBLIC;
|
||||||
|
|
|
@ -7,8 +7,8 @@ CREATE SCHEMA IF NOT EXISTS "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
|
|
||||||
GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO enterprisedb;
|
GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO enterprisedb;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT SELECT ON TABLES TO PUBLIC;
|
GRANT SELECT ON TABLES TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
REVOKE ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" FROM PUBLIC;
|
REVOKE ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" FROM PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
REVOKE ALL ON SEQUENCES FROM PUBLIC;
|
REVOKE ALL ON SEQUENCES FROM PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
REVOKE ALL ON TYPES FROM PUBLIC;
|
REVOKE ALL ON TYPES FROM PUBLIC;
|
||||||
|
|
|
@ -9,14 +9,14 @@ GRANT USAGE ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO PUBLIC;
|
||||||
|
|
||||||
GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO enterprisedb;
|
GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO enterprisedb;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT SELECT ON TABLES TO PUBLIC;
|
GRANT SELECT ON TABLES TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT UPDATE ON SEQUENCES TO PUBLIC;
|
GRANT UPDATE ON SEQUENCES TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT USAGE ON TYPES TO PUBLIC;
|
GRANT USAGE ON TYPES TO PUBLIC;
|
||||||
|
|
|
@ -2,13 +2,13 @@ REVOKE ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" FROM PUBLIC;
|
||||||
GRANT USAGE ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO PUBLIC;
|
GRANT USAGE ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO PUBLIC;
|
||||||
|
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
REVOKE ALL ON TABLES FROM PUBLIC;
|
REVOKE ALL ON TABLES FROM PUBLIC;
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT SELECT ON TABLES TO PUBLIC;
|
GRANT SELECT ON TABLES TO PUBLIC;
|
||||||
|
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
REVOKE ALL ON SEQUENCES FROM PUBLIC;
|
REVOKE ALL ON SEQUENCES FROM PUBLIC;
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT UPDATE ON SEQUENCES TO PUBLIC;
|
GRANT UPDATE ON SEQUENCES TO PUBLIC;
|
||||||
|
|
|
@ -12,14 +12,14 @@ GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO PUBLIC;
|
||||||
|
|
||||||
GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO enterprisedb;
|
GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO enterprisedb;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT ALL ON TABLES TO PUBLIC;
|
GRANT ALL ON TABLES TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT ALL ON SEQUENCES TO PUBLIC;
|
GRANT ALL ON SEQUENCES TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT USAGE ON TYPES TO PUBLIC;
|
GRANT USAGE ON TYPES TO PUBLIC;
|
||||||
|
|
|
@ -5,14 +5,14 @@ COMMENT ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
|
|
||||||
GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO PUBLIC;
|
GRANT ALL ON SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#" TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT ALL ON TABLES TO PUBLIC;
|
GRANT ALL ON TABLES TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT ALL ON SEQUENCES TO PUBLIC;
|
GRANT ALL ON SEQUENCES TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
GRANT EXECUTE ON FUNCTIONS TO PUBLIC;
|
||||||
|
|
||||||
ALTER DEFAULT PRIVILEGES IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb IN SCHEMA "test_schema_$%{}[]()&*^!@""""'`\/#"
|
||||||
GRANT USAGE ON TYPES TO PUBLIC;
|
GRANT USAGE ON TYPES TO PUBLIC;
|
||||||
|
|
|
@ -78,18 +78,18 @@
|
||||||
{% if data.deftblacl %}
|
{% if data.deftblacl %}
|
||||||
{% if 'deleted' in data.deftblacl %}
|
{% if 'deleted' in data.deftblacl %}
|
||||||
{% for priv in data.deftblacl.deleted %}
|
{% for priv in data.deftblacl.deleted %}
|
||||||
{{ DEFAULT_PRIVILEGE.RESETALL(conn, 'TABLES', priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.RESETALL(conn, 'TABLES', priv.grantee, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'changed' in data.deftblacl %}
|
{% if 'changed' in data.deftblacl %}
|
||||||
{% for priv in data.deftblacl.changed %}
|
{% for priv in data.deftblacl.changed %}
|
||||||
{{ DEFAULT_PRIVILEGE.RESETALL(conn, 'TABLES', priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.RESETALL(conn, 'TABLES', priv.grantee, priv.grantor) }}
|
||||||
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'TABLES', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'TABLES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'added' in data.deftblacl %}
|
{% if 'added' in data.deftblacl %}
|
||||||
{% for priv in data.deftblacl.added %}
|
{% for priv in data.deftblacl.added %}
|
||||||
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'TABLES', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'TABLES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -98,18 +98,18 @@
|
||||||
{% if data.defseqacl %}
|
{% if data.defseqacl %}
|
||||||
{% if 'deleted' in data.defseqacl %}
|
{% if 'deleted' in data.defseqacl %}
|
||||||
{% for priv in data.defseqacl.deleted %}
|
{% for priv in data.defseqacl.deleted %}
|
||||||
{{ DEFAULT_PRIVILEGE.RESETALL(conn, 'SEQUENCES', priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.RESETALL(conn, 'SEQUENCES', priv.grantee, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'changed' in data.defseqacl %}
|
{% if 'changed' in data.defseqacl %}
|
||||||
{% for priv in data.defseqacl.changed %}
|
{% 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) }}
|
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'SEQUENCES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'added' in data.defseqacl %}
|
{% if 'added' in data.defseqacl %}
|
||||||
{% for priv in data.defseqacl.added %}
|
{% for priv in data.defseqacl.added %}
|
||||||
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'SEQUENCES', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'SEQUENCES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -118,18 +118,18 @@
|
||||||
{% if data.deffuncacl %}
|
{% if data.deffuncacl %}
|
||||||
{% if 'deleted' in data.deffuncacl %}
|
{% if 'deleted' in data.deffuncacl %}
|
||||||
{% for priv in data.deffuncacl.deleted %}
|
{% for priv in data.deffuncacl.deleted %}
|
||||||
{{ DEFAULT_PRIVILEGE.RESETALL(conn, 'FUNCTIONS', priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.RESETALL(conn, 'FUNCTIONS', priv.grantee, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'changed' in data.deffuncacl %}
|
{% if 'changed' in data.deffuncacl %}
|
||||||
{% for priv in data.deffuncacl.changed %}
|
{% 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) }}
|
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'FUNCTIONS', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'added' in data.deffuncacl %}
|
{% if 'added' in data.deffuncacl %}
|
||||||
{% for priv in data.deffuncacl.added %}
|
{% for priv in data.deffuncacl.added %}
|
||||||
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'FUNCTIONS', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'FUNCTIONS', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -138,18 +138,18 @@
|
||||||
{% if data.deftypeacl %}
|
{% if data.deftypeacl %}
|
||||||
{% if 'deleted' in data.deftypeacl %}
|
{% if 'deleted' in data.deftypeacl %}
|
||||||
{% for priv in data.deftypeacl.deleted %}
|
{% for priv in data.deftypeacl.deleted %}
|
||||||
{{ DEFAULT_PRIVILEGE.RESETALL(conn, 'TYPES', priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.RESETALL(conn, 'TYPES', priv.grantee, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'changed' in data.deftypeacl %}
|
{% if 'changed' in data.deftypeacl %}
|
||||||
{% for priv in data.deftypeacl.changed %}
|
{% for priv in data.deftypeacl.changed %}
|
||||||
{{ DEFAULT_PRIVILEGE.RESETALL(conn, 'TYPES', priv.grantee) }}
|
{{ DEFAULT_PRIVILEGE.RESETALL(conn, 'TYPES', priv.grantee, priv.grantor) }}
|
||||||
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'TYPES', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'TYPES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'added' in data.deftypeacl %}
|
{% if 'added' in data.deftypeacl %}
|
||||||
{% for priv in data.deftypeacl.added %}
|
{% for priv in data.deftypeacl.added %}
|
||||||
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'TYPES', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'TYPES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
SELECT
|
{% if not grant_reovke_sql %}
|
||||||
|
(SELECT
|
||||||
CASE (a.deftype)
|
CASE (a.deftype)
|
||||||
WHEN 'r' THEN 'deftblacl'
|
WHEN 'r' THEN 'deftblacl'
|
||||||
WHEN 'S' THEN 'defseqacl'
|
WHEN 'S' THEN 'defseqacl'
|
||||||
WHEN 'f' THEN 'deffuncacl'
|
WHEN 'f' THEN 'deffuncacl'
|
||||||
WHEN 'T' THEN 'deftypeacl'
|
WHEN 'T' THEN 'deftypeacl'
|
||||||
END AS deftype,
|
END AS deftype,
|
||||||
|
'defaultacls' as acltype,
|
||||||
COALESCE(gt.rolname, 'PUBLIC') AS grantee, g.rolname AS grantor, pg_catalog.array_agg(a.privilege_type) as privileges, pg_catalog.array_agg(a.is_grantable) as grantable
|
COALESCE(gt.rolname, 'PUBLIC') AS grantee, g.rolname AS grantor, pg_catalog.array_agg(a.privilege_type) as privileges, pg_catalog.array_agg(a.is_grantable) as grantable
|
||||||
FROM
|
FROM
|
||||||
(SELECT
|
(SELECT
|
||||||
|
@ -32,3 +34,128 @@ FROM
|
||||||
LEFT JOIN pg_catalog.pg_roles gt ON (a.grantee = gt.oid)
|
LEFT JOIN pg_catalog.pg_roles gt ON (a.grantee = gt.oid)
|
||||||
GROUP BY g.rolname, gt.rolname, a.deftype
|
GROUP BY g.rolname, gt.rolname, a.deftype
|
||||||
ORDER BY a.deftype
|
ORDER BY a.deftype
|
||||||
|
)
|
||||||
|
{% else %}
|
||||||
|
|
||||||
|
(SELECT
|
||||||
|
CASE (e.deftype)
|
||||||
|
WHEN 'r' THEN 'deftblacl'
|
||||||
|
WHEN 'S' THEN 'defseqacl'
|
||||||
|
WHEN 'f' THEN 'deffuncacl'
|
||||||
|
WHEN 'T' THEN 'deftypeacl'
|
||||||
|
END AS deftype,
|
||||||
|
'revoke' as acltype,
|
||||||
|
COALESCE(gt.rolname, 'PUBLIC') AS grantee, g.rolname AS grantor, pg_catalog.array_agg(e.privilege_type) as privileges, pg_catalog.array_agg(e.is_grantable) as grantable
|
||||||
|
FROM(
|
||||||
|
SELECT
|
||||||
|
(d.acl).grantee as grantee, (d.acl).grantor AS grantor, (d.acl).is_grantable AS is_grantable,
|
||||||
|
CASE (d.acl).privilege_type
|
||||||
|
WHEN 'CONNECT' THEN 'c'
|
||||||
|
WHEN 'CREATE' THEN 'C'
|
||||||
|
WHEN 'DELETE' THEN 'd'
|
||||||
|
WHEN 'EXECUTE' THEN 'X'
|
||||||
|
WHEN 'INSERT' THEN 'a'
|
||||||
|
WHEN 'REFERENCES' THEN 'x'
|
||||||
|
WHEN 'SELECT' THEN 'r'
|
||||||
|
WHEN 'TEMPORARY' THEN 'T'
|
||||||
|
WHEN 'TRIGGER' THEN 't'
|
||||||
|
WHEN 'TRUNCATE' THEN 'D'
|
||||||
|
WHEN 'UPDATE' THEN 'w'
|
||||||
|
WHEN 'USAGE' THEN 'U'
|
||||||
|
ELSE 'UNKNOWN'
|
||||||
|
END AS privilege_type,
|
||||||
|
d.defaclobjtype as deftype
|
||||||
|
FROM
|
||||||
|
(select
|
||||||
|
b.defaclobjtype,
|
||||||
|
pg_catalog.aclexplode(b.revoke_priv) as acl
|
||||||
|
from
|
||||||
|
(select
|
||||||
|
a.defaclobjtype,
|
||||||
|
a.defaclrole,
|
||||||
|
a.defaultprivileges,
|
||||||
|
a.acldefault,
|
||||||
|
array(select unnest(a.acldefault) except select unnest(a.defaultprivileges)) as revoke_priv
|
||||||
|
from
|
||||||
|
(SELECT
|
||||||
|
defaclobjtype,
|
||||||
|
defaclrole,
|
||||||
|
defaclacl as defaultprivileges,
|
||||||
|
CASE
|
||||||
|
WHEN defaclnamespace = 0 THEN acldefault(CASE WHEN defaclobjtype = 'S' THEN 's'::"char" ELSE defaclobjtype END, defaclrole)
|
||||||
|
ELSE '{}'
|
||||||
|
END AS acldefault
|
||||||
|
FROM pg_catalog.pg_default_acl dacl
|
||||||
|
WHERE dacl.defaclnamespace = 0::OID
|
||||||
|
) a
|
||||||
|
) b
|
||||||
|
where not b.revoke_priv = '{}'
|
||||||
|
) d
|
||||||
|
) e
|
||||||
|
LEFT JOIN pg_catalog.pg_roles g ON (e.grantor = g.oid)
|
||||||
|
LEFT JOIN pg_catalog.pg_roles gt ON (e.grantee = gt.oid)
|
||||||
|
GROUP BY g.rolname, gt.rolname, e.deftype
|
||||||
|
ORDER BY e.deftype)
|
||||||
|
|
||||||
|
UNION
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
CASE (e.deftype)
|
||||||
|
WHEN 'r' THEN 'deftblacl'
|
||||||
|
WHEN 'S' THEN 'defseqacl'
|
||||||
|
WHEN 'f' THEN 'deffuncacl'
|
||||||
|
WHEN 'T' THEN 'deftypeacl'
|
||||||
|
END AS deftype,
|
||||||
|
'grant' as acltype,
|
||||||
|
COALESCE(gt.rolname, 'PUBLIC') AS grantee, g.rolname AS grantor, pg_catalog.array_agg(e.privilege_type) as privileges, pg_catalog.array_agg(e.is_grantable) as grantable
|
||||||
|
FROM(
|
||||||
|
SELECT
|
||||||
|
(d.acl).grantee as grantee, (d.acl).grantor AS grantor, (d.acl).is_grantable AS is_grantable,
|
||||||
|
CASE (d.acl).privilege_type
|
||||||
|
WHEN 'CONNECT' THEN 'c'
|
||||||
|
WHEN 'CREATE' THEN 'C'
|
||||||
|
WHEN 'DELETE' THEN 'd'
|
||||||
|
WHEN 'EXECUTE' THEN 'X'
|
||||||
|
WHEN 'INSERT' THEN 'a'
|
||||||
|
WHEN 'REFERENCES' THEN 'x'
|
||||||
|
WHEN 'SELECT' THEN 'r'
|
||||||
|
WHEN 'TEMPORARY' THEN 'T'
|
||||||
|
WHEN 'TRIGGER' THEN 't'
|
||||||
|
WHEN 'TRUNCATE' THEN 'D'
|
||||||
|
WHEN 'UPDATE' THEN 'w'
|
||||||
|
WHEN 'USAGE' THEN 'U'
|
||||||
|
ELSE 'UNKNOWN'
|
||||||
|
END AS privilege_type,
|
||||||
|
d.defaclobjtype as deftype
|
||||||
|
FROM(
|
||||||
|
select
|
||||||
|
*,
|
||||||
|
pg_catalog.aclexplode(b.grant_priv) as acl
|
||||||
|
from
|
||||||
|
(select
|
||||||
|
a.defaclobjtype,
|
||||||
|
a.defaclrole,
|
||||||
|
a.defaultprivileges,
|
||||||
|
a.acldefault,
|
||||||
|
array(select unnest(a.defaultprivileges) except select unnest(a.acldefault)) as grant_priv
|
||||||
|
from
|
||||||
|
(SELECT
|
||||||
|
defaclobjtype,
|
||||||
|
defaclrole,
|
||||||
|
defaclacl as defaultprivileges,
|
||||||
|
CASE
|
||||||
|
WHEN defaclnamespace = 0
|
||||||
|
THEN acldefault(CASE WHEN defaclobjtype = 'S' THEN 's'::"char" ELSE defaclobjtype END, defaclrole)
|
||||||
|
ELSE '{}'
|
||||||
|
END AS acldefault
|
||||||
|
FROM pg_catalog.pg_default_acl dacl
|
||||||
|
WHERE dacl.defaclnamespace = 0::OID
|
||||||
|
) a
|
||||||
|
) b where not b.grant_priv = '{}'
|
||||||
|
) d
|
||||||
|
) e
|
||||||
|
LEFT JOIN pg_catalog.pg_roles g ON (e.grantor = g.oid)
|
||||||
|
LEFT JOIN pg_catalog.pg_roles gt ON (e.grantee = gt.oid)
|
||||||
|
GROUP BY g.rolname, gt.rolname, e.deftype
|
||||||
|
ORDER BY e.deftype)
|
||||||
|
{% endif %}
|
||||||
|
|
|
@ -41,24 +41,43 @@ COMMENT ON DATABASE {{ conn|qtIdent(data.name) }}
|
||||||
{# Default privileges/ACLs for tables #}
|
{# Default privileges/ACLs for tables #}
|
||||||
{% if data.deftblacl %}
|
{% if data.deftblacl %}
|
||||||
{% for priv in data.deftblacl %}
|
{% for priv in data.deftblacl %}
|
||||||
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'TABLES', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{% if priv.acltype == 'grant' %}
|
||||||
|
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'TABLES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
|
{% else %}
|
||||||
|
{{ DEFAULT_PRIVILEGE.REMOVE(conn, 'TABLES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{# Default privileges/ACLs for sequences #}
|
{# Default privileges/ACLs for sequences #}
|
||||||
{% if data.defseqacl %}
|
{% if data.defseqacl %}
|
||||||
{% for priv in data.defseqacl %}
|
{% for priv in data.defseqacl %}
|
||||||
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'SEQUENCES', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{% if priv.acltype == 'grant' %}
|
||||||
|
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'SEQUENCES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
|
{% else %}
|
||||||
|
{{ DEFAULT_PRIVILEGE.REMOVE(conn, 'SEQUENCES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{# Default privileges/ACLs for functions #}
|
{# Default privileges/ACLs for functions #}
|
||||||
{% if data.deffuncacl %}
|
{% if data.deffuncacl %}
|
||||||
{% for priv in data.deffuncacl %}
|
{% for priv in data.deffuncacl %}
|
||||||
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'FUNCTIONS', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{% if priv.acltype == 'grant' %}
|
||||||
|
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'FUNCTIONS', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
|
{% else %}
|
||||||
|
{{ DEFAULT_PRIVILEGE.REMOVE(conn, 'FUNCTIONS', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{# Default privileges/ACLs for types #}
|
{# Default privileges/ACLs for types #}
|
||||||
{% if data.deftypeacl %}
|
{% if data.deftypeacl %}
|
||||||
{% for priv in data.deftypeacl %}
|
{% for priv in data.deftypeacl %}
|
||||||
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'TYPES', priv.grantee, priv.without_grant, priv.with_grant) }}
|
{% if priv.acltype == 'grant' %}
|
||||||
|
{{ DEFAULT_PRIVILEGE.APPLY(conn, 'TYPES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
|
{% else %}
|
||||||
|
{{ DEFAULT_PRIVILEGE.REMOVE(conn, 'TYPES', priv.grantee, priv.without_grant, priv.with_grant, priv.grantor) }}
|
||||||
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{% if data %}
|
{% if data %}
|
||||||
CREATE DATABASE {{ conn|qtIdent(data.name) }}
|
CREATE DATABASE {{ conn|qtIdent(data.name) }}
|
||||||
{% if data.datowner %}
|
{% if data.datowner %}
|
||||||
WITH {% endif %}{% if data.datowner %}
|
WITH{% endif %}{% if data.datowner %}
|
||||||
|
|
||||||
OWNER = {{ conn|qtIdent(data.datowner) }}{% endif %}{% if data.template %}
|
OWNER = {{ conn|qtIdent(data.datowner) }}{% endif %}{% if data.template %}
|
||||||
|
|
||||||
|
|
|
@ -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 = 'C'
|
||||||
|
LC_CTYPE = 'C'
|
||||||
|
TABLESPACE = pg_default
|
||||||
|
CONNECTION LIMIT = -1;
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;
|
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
|
||||||
|
REVOKE ALL ON FUNCTIONS FROM PUBLIC;
|
|
@ -0,0 +1,12 @@
|
||||||
|
-- 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;
|
|
@ -0,0 +1,21 @@
|
||||||
|
-- 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;
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE ALL ON TABLES FROM postgres;
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
|
||||||
|
GRANT SELECT, USAGE ON SEQUENCES TO PUBLIC;
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE ALL ON SEQUENCES FROM postgres;
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;
|
|
@ -0,0 +1,9 @@
|
||||||
|
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
|
||||||
|
REVOKE ALL ON TABLES FROM PUBLIC;
|
||||||
|
|
||||||
|
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;
|
|
@ -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 = 'C'
|
||||||
|
LC_CTYPE = 'C'
|
||||||
|
TABLESPACE = pg_default
|
||||||
|
CONNECTION LIMIT = -1;
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE ALL ON TABLES FROM postgres;
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
|
||||||
|
GRANT SELECT ON TABLES TO PUBLIC;
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;
|
|
@ -0,0 +1,6 @@
|
||||||
|
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
|
||||||
|
REVOKE ALL ON TABLES FROM PUBLIC;
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
|
||||||
|
GRANT SELECT ON TABLES TO PUBLIC;
|
|
@ -0,0 +1,23 @@
|
||||||
|
-- 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;
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE ALL ON TABLES FROM postgres;
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres
|
||||||
|
GRANT SELECT, USAGE ON SEQUENCES TO PUBLIC;
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE ALL ON SEQUENCES FROM postgres;
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres REVOKE USAGE ON TYPES FROM PUBLIC;
|
|
@ -0,0 +1,141 @@
|
||||||
|
{
|
||||||
|
"scenarios": [
|
||||||
|
{
|
||||||
|
"type": "alter",
|
||||||
|
"name": "Alert default priviliges for functions",
|
||||||
|
"endpoint": "NODE-database.obj_id",
|
||||||
|
"sql_endpoint": "NODE-database.sql_id",
|
||||||
|
"msql_endpoint": "NODE-database.msql_id",
|
||||||
|
"TEST_DB_NAME": "<TEST_DB_NAME>",
|
||||||
|
"data": {
|
||||||
|
"deffuncacl": {
|
||||||
|
"deleted": [
|
||||||
|
{
|
||||||
|
"grantor": "postgres",
|
||||||
|
"grantee": "PUBLIC",
|
||||||
|
"privileges": [
|
||||||
|
{
|
||||||
|
"privilege_type": "X",
|
||||||
|
"privilege": true,
|
||||||
|
"with_grant": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"acltype": "defaultacls"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"expected_sql_file": "alter_default_db_privileges_function.sql",
|
||||||
|
"expected_msql_file": "alter_default_db_privileges_function_msql.sql"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "alter",
|
||||||
|
"name": "Alert default privileges for tables",
|
||||||
|
"endpoint": "NODE-database.obj_id",
|
||||||
|
"sql_endpoint": "NODE-database.sql_id",
|
||||||
|
"TEST_DB_NAME": "<TEST_DB_NAME>",
|
||||||
|
"data": {
|
||||||
|
"deftblacl": {
|
||||||
|
"deleted": [
|
||||||
|
{
|
||||||
|
"grantor": "postgres",
|
||||||
|
"grantee": "postgres",
|
||||||
|
"privileges": [
|
||||||
|
{"privilege_type":"D","privilege":true,"with_grant":false},
|
||||||
|
{"privilege_type":"w","privilege":true,"with_grant":false}
|
||||||
|
],
|
||||||
|
"acltype": "deftblacl"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"added": [
|
||||||
|
{
|
||||||
|
"grantee": "PUBLIC",
|
||||||
|
"privileges": [
|
||||||
|
{
|
||||||
|
"privilege_type": "r",
|
||||||
|
"privilege": true,
|
||||||
|
"with_grant": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"grantor": "postgres"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"expected_sql_file": "alter_default_db_privileges_tables.sql"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "alter",
|
||||||
|
"name": "Alert default privileges for sequences",
|
||||||
|
"endpoint": "NODE-database.obj_id",
|
||||||
|
"sql_endpoint": "NODE-database.sql_id",
|
||||||
|
"msql_endpoint": "NODE-database.msql_id",
|
||||||
|
"TEST_DB_NAME": "<TEST_DB_NAME>",
|
||||||
|
"data": {
|
||||||
|
"defseqacl": {
|
||||||
|
"deleted": [
|
||||||
|
{
|
||||||
|
"grantor": "postgres",
|
||||||
|
"grantee": "postgres",
|
||||||
|
"privileges": [
|
||||||
|
{
|
||||||
|
"privilege_type": "w",
|
||||||
|
"privilege": true,
|
||||||
|
"with_grant": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"acltype": "defaultacls"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"added":[
|
||||||
|
{"grantee":"PUBLIC","privileges":[{"privilege_type":"U","privilege":true,"with_grant":false},
|
||||||
|
{"privilege_type":"r","privilege":true,"with_grant":false}],"grantor":"postgres"}]
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "alter",
|
||||||
|
"name": "Alert default privileges for types",
|
||||||
|
"endpoint": "NODE-database.obj_id",
|
||||||
|
"sql_endpoint": "NODE-database.sql_id",
|
||||||
|
"TEST_DB_NAME": "<TEST_DB_NAME>",
|
||||||
|
"data": {
|
||||||
|
"deftypeacl": {
|
||||||
|
"deleted": [
|
||||||
|
{
|
||||||
|
"grantor": "postgres",
|
||||||
|
"grantee": "PUBLIC",
|
||||||
|
"privileges": [
|
||||||
|
{
|
||||||
|
"privilege_type": "U",
|
||||||
|
"privilege": true,
|
||||||
|
"with_grant": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"acltype": "defaultacls"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
"expected_sql_file": "alter_default_db_privileges_types.sql"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "alter",
|
||||||
|
"name": "Alert default privileges reset all",
|
||||||
|
"endpoint": "NODE-database.obj_id",
|
||||||
|
"sql_endpoint": "NODE-database.sql_id",
|
||||||
|
"TEST_DB_NAME": "<TEST_DB_NAME>",
|
||||||
|
"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"}]}
|
||||||
|
},
|
||||||
|
"expected_sql_file": "alter_default_db_privileges_reset_all.sql"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -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 = 'C'
|
||||||
|
LC_CTYPE = 'C'
|
||||||
|
TABLESPACE = pg_default
|
||||||
|
CONNECTION LIMIT = -1;
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;
|
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
|
||||||
|
REVOKE ALL ON FUNCTIONS FROM PUBLIC;
|
|
@ -0,0 +1,12 @@
|
||||||
|
-- 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;
|
|
@ -0,0 +1,21 @@
|
||||||
|
-- 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;
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE ALL ON TABLES FROM enterprisedb;
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE ALL ON SEQUENCES FROM enterprisedb;
|
||||||
|
|
||||||
|
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;
|
|
@ -0,0 +1,9 @@
|
||||||
|
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
|
||||||
|
REVOKE ALL ON TABLES FROM PUBLIC;
|
||||||
|
|
||||||
|
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;
|
|
@ -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 = 'C'
|
||||||
|
LC_CTYPE = 'C'
|
||||||
|
TABLESPACE = pg_default
|
||||||
|
CONNECTION LIMIT = -1;
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
|
||||||
|
GRANT SELECT ON TABLES TO PUBLIC;
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE ALL ON TABLES FROM enterprisedb;
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;
|
|
@ -0,0 +1,6 @@
|
||||||
|
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
|
||||||
|
REVOKE ALL ON TABLES FROM PUBLIC;
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb
|
||||||
|
GRANT SELECT ON TABLES TO PUBLIC;
|
|
@ -0,0 +1,23 @@
|
||||||
|
-- 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;
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE ALL ON TABLES FROM enterprisedb;
|
||||||
|
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE enterprisedb REVOKE ALL ON SEQUENCES FROM enterprisedb;
|
||||||
|
|
||||||
|
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;
|
|
@ -0,0 +1,141 @@
|
||||||
|
{
|
||||||
|
"scenarios": [
|
||||||
|
{
|
||||||
|
"type": "alter",
|
||||||
|
"name": "Alert default priviliges for functions",
|
||||||
|
"endpoint": "NODE-database.obj_id",
|
||||||
|
"sql_endpoint": "NODE-database.sql_id",
|
||||||
|
"msql_endpoint": "NODE-database.msql_id",
|
||||||
|
"TEST_DB_NAME": "<TEST_DB_NAME>",
|
||||||
|
"data": {
|
||||||
|
"deffuncacl": {
|
||||||
|
"deleted": [
|
||||||
|
{
|
||||||
|
"grantor": "enterprisedb",
|
||||||
|
"grantee": "PUBLIC",
|
||||||
|
"privileges": [
|
||||||
|
{
|
||||||
|
"privilege_type": "X",
|
||||||
|
"privilege": true,
|
||||||
|
"with_grant": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"acltype": "defaultacls"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"expected_sql_file": "alter_default_db_privileges_function.sql",
|
||||||
|
"expected_msql_file": "alter_default_db_privileges_function_msql.sql"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "alter",
|
||||||
|
"name": "Alert default privileges for tables",
|
||||||
|
"endpoint": "NODE-database.obj_id",
|
||||||
|
"sql_endpoint": "NODE-database.sql_id",
|
||||||
|
"TEST_DB_NAME": "<TEST_DB_NAME>",
|
||||||
|
"data": {
|
||||||
|
"deftblacl": {
|
||||||
|
"deleted": [
|
||||||
|
{
|
||||||
|
"grantor": "enterprisedb",
|
||||||
|
"grantee": "enterprisedb",
|
||||||
|
"privileges": [
|
||||||
|
{"privilege_type":"D","privilege":true,"with_grant":false},
|
||||||
|
{"privilege_type":"w","privilege":true,"with_grant":false}
|
||||||
|
],
|
||||||
|
"acltype": "deftblacl"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"added": [
|
||||||
|
{
|
||||||
|
"grantee": "PUBLIC",
|
||||||
|
"privileges": [
|
||||||
|
{
|
||||||
|
"privilege_type": "r",
|
||||||
|
"privilege": true,
|
||||||
|
"with_grant": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"grantor": "enterprisedb"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"expected_sql_file": "alter_default_db_privileges_tables.sql"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "alter",
|
||||||
|
"name": "Alert default privileges for sequences",
|
||||||
|
"endpoint": "NODE-database.obj_id",
|
||||||
|
"sql_endpoint": "NODE-database.sql_id",
|
||||||
|
"msql_endpoint": "NODE-database.msql_id",
|
||||||
|
"TEST_DB_NAME": "<TEST_DB_NAME>",
|
||||||
|
"data": {
|
||||||
|
"defseqacl": {
|
||||||
|
"deleted": [
|
||||||
|
{
|
||||||
|
"grantor": "enterprisedb",
|
||||||
|
"grantee": "enterprisedb",
|
||||||
|
"privileges": [
|
||||||
|
{
|
||||||
|
"privilege_type": "w",
|
||||||
|
"privilege": true,
|
||||||
|
"with_grant": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"acltype": "defaultacls"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "alter",
|
||||||
|
"name": "Alert default privileges for types",
|
||||||
|
"endpoint": "NODE-database.obj_id",
|
||||||
|
"sql_endpoint": "NODE-database.sql_id",
|
||||||
|
"TEST_DB_NAME": "<TEST_DB_NAME>",
|
||||||
|
"data": {
|
||||||
|
"deftypeacl": {
|
||||||
|
"deleted": [
|
||||||
|
{
|
||||||
|
"grantor": "enterprisedb",
|
||||||
|
"grantee": "PUBLIC",
|
||||||
|
"privileges": [
|
||||||
|
{
|
||||||
|
"privilege_type": "U",
|
||||||
|
"privilege": true,
|
||||||
|
"with_grant": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"acltype": "defaultacls"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
"expected_sql_file": "alter_default_db_privileges_types.sql"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "alter",
|
||||||
|
"name": "Alert default privileges reset all",
|
||||||
|
"endpoint": "NODE-database.obj_id",
|
||||||
|
"sql_endpoint": "NODE-database.sql_id",
|
||||||
|
"TEST_DB_NAME": "<TEST_DB_NAME>",
|
||||||
|
"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"}]}
|
||||||
|
},
|
||||||
|
"expected_sql_file": "alter_default_db_privileges_reset_all.sql"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -1,29 +1,38 @@
|
||||||
{% macro APPLY(conn, type, role, privs, with_grant_privs) -%}
|
{% macro APPLY(conn, type, role, privs, with_grant_privs, grantor) -%}
|
||||||
{% if privs %}
|
{% if privs %}
|
||||||
ALTER DEFAULT PRIVILEGES
|
ALTER DEFAULT PRIVILEGES FOR ROLE {{grantor}}
|
||||||
GRANT {{ privs|join(', ') }} ON {{ type }} TO {{ role }};
|
GRANT {{ privs|join(', ') }} ON {{ type }} TO {{ role }};
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if with_grant_privs %}
|
{% if with_grant_privs %}
|
||||||
ALTER DEFAULT PRIVILEGES
|
ALTER DEFAULT PRIVILEGES FOR ROLE {{grantor}}
|
||||||
GRANT {{ with_grant_privs|join(', ') }} ON {{ type }} TO {{ role }} WITH GRANT OPTION;
|
GRANT {{ with_grant_privs|join(', ') }} ON {{ type }} TO {{ role }} WITH GRANT OPTION;
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{%- endmacro %}
|
{%- endmacro %}
|
||||||
{% macro RESETALL(conn, type, role) -%}
|
{% macro RESETALL(conn, type, role, grantor) -%}
|
||||||
ALTER DEFAULT PRIVILEGES
|
ALTER DEFAULT PRIVILEGES FOR ROLE {{grantor}}
|
||||||
REVOKE ALL ON {{ type }} FROM {{ role }};
|
REVOKE ALL ON {{ type }} FROM {{ role }};
|
||||||
{%- endmacro %}
|
{%- endmacro %}
|
||||||
{### To allow create macro for specific database object ###}
|
{### To allow create macro for specific database object ###}
|
||||||
{% macro SET(conn, db_object_type, db_object_name, type, role, privs, with_grant_privs) -%}
|
{% macro SET(conn, db_object_type, db_object_name, type, role, privs, with_grant_privs, grantor) -%}
|
||||||
{% if privs %}
|
{% if privs %}
|
||||||
ALTER DEFAULT PRIVILEGES IN {{ db_object_type }} {{ conn|qtIdent(db_object_name) }}
|
ALTER DEFAULT PRIVILEGES FOR ROLE {{grantor}} IN {{ db_object_type }} {{ conn|qtIdent(db_object_name) }}
|
||||||
GRANT {{ privs|join(', ') }} ON {{ type }} TO {{ role }};
|
GRANT {{ privs|join(', ') }} ON {{ type }} TO {{ role }};
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if with_grant_privs %}
|
{% if with_grant_privs %}
|
||||||
ALTER DEFAULT PRIVILEGES IN {{ db_object_type }} {{ conn|qtIdent(db_object_name) }}
|
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|join(', ') }} ON {{ type }} TO {{ role }} WITH GRANT OPTION;
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{%- endmacro %}
|
{%- endmacro %}
|
||||||
{% macro UNSET(conn, db_object_type, db_object_name, type, role) -%}
|
{% macro UNSET(conn, db_object_type, db_object_name, type, role, grantor) -%}
|
||||||
ALTER DEFAULT PRIVILEGES IN {{ db_object_type }} {{ conn|qtIdent(db_object_name) }}
|
ALTER DEFAULT PRIVILEGES FOR ROLE {{grantor}} IN {{ db_object_type }} {{ conn|qtIdent(db_object_name) }}
|
||||||
REVOKE ALL ON {{ type }} FROM {{ role }};
|
REVOKE ALL ON {{ type }} FROM {{ role }};
|
||||||
{%- endmacro %}
|
{%- endmacro %}
|
||||||
|
|
||||||
|
{% 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 }};
|
||||||
|
{% endif %}
|
||||||
|
{% if with_grant_privs %}
|
||||||
|
ALTER DEFAULT PRIVILEGES FOR ROLE {{grantor}} REVOKE {{ with_grant_privs|join(', ') }} ON {{ type }} FROM {{ role }} WITH GRANT OPTION;
|
||||||
|
{% endif %}
|
||||||
|
{%- endmacro %}
|
||||||
|
|
|
@ -31,6 +31,8 @@ def parse_priv_from_db(db_privileges):
|
||||||
'grantee': db_privileges['grantee'],
|
'grantee': db_privileges['grantee'],
|
||||||
'privileges': []
|
'privileges': []
|
||||||
}
|
}
|
||||||
|
if 'acltype' in db_privileges:
|
||||||
|
acl['acltype'] = db_privileges['acltype']
|
||||||
|
|
||||||
privileges = []
|
privileges = []
|
||||||
for idx, priv in enumerate(db_privileges['privileges']):
|
for idx, priv in enumerate(db_privileges['privileges']):
|
||||||
|
@ -133,12 +135,16 @@ def parse_priv_to_db(str_privileges, allowed_acls=[]):
|
||||||
if 'old_grantee' in priv and priv['old_grantee'] != 'PUBLIC' \
|
if 'old_grantee' in priv and priv['old_grantee'] != 'PUBLIC' \
|
||||||
else grantee
|
else grantee
|
||||||
|
|
||||||
|
acltype = priv['acltype'] if 'acltype' in priv else 'defaultacls'
|
||||||
|
|
||||||
# Appending and returning all ACL
|
# Appending and returning all ACL
|
||||||
privileges.append({
|
privileges.append({
|
||||||
|
'grantor': priv['grantor'],
|
||||||
'grantee': grantee,
|
'grantee': grantee,
|
||||||
'with_grant': priv_with_grant,
|
'with_grant': priv_with_grant,
|
||||||
'without_grant': priv_without_grant,
|
'without_grant': priv_without_grant,
|
||||||
'old_grantee': old_grantee
|
'old_grantee': old_grantee,
|
||||||
|
'acltype': acltype
|
||||||
})
|
})
|
||||||
|
|
||||||
return privileges
|
return privileges
|
||||||
|
|
|
@ -633,9 +633,11 @@ def add_db_to_parent_node_dict(srv_id, db_id, test_db_name):
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
def add_schema_to_parent_node_dict(srv_id, db_id, schema_id, schema_name):
|
def add_schema_to_parent_node_dict(srv_id, db_name, db_id, schema_id,
|
||||||
|
schema_name):
|
||||||
""" This function stores the schema details into parent dict """
|
""" This function stores the schema details into parent dict """
|
||||||
server_information = {"server_id": srv_id, "db_id": db_id,
|
server_information = {"server_id": srv_id, "db_id": db_id,
|
||||||
|
"test_db_name": db_name,
|
||||||
"schema_id": schema_id,
|
"schema_id": schema_id,
|
||||||
"schema_name": schema_name}
|
"schema_name": schema_name}
|
||||||
regression.parent_node_dict["schema"].append(server_information)
|
regression.parent_node_dict["schema"].append(server_information)
|
||||||
|
@ -653,7 +655,8 @@ def create_parent_server_node(server_info):
|
||||||
srv_id = create_server(server_info)
|
srv_id = create_server(server_info)
|
||||||
# Create database
|
# Create database
|
||||||
test_db_name = "test_db_%s" % str(uuid.uuid4())[1:6]
|
test_db_name = "test_db_%s" % str(uuid.uuid4())[1:6]
|
||||||
db_id = create_database(server_info, test_db_name)
|
encodings = ['UTF-8', 'C', 'C']
|
||||||
|
db_id = create_database(server_info, test_db_name, encodings)
|
||||||
add_db_to_parent_node_dict(srv_id, db_id, test_db_name)
|
add_db_to_parent_node_dict(srv_id, db_id, test_db_name)
|
||||||
# Create schema
|
# Create schema
|
||||||
schema_name = "test_schema_%s" % str(uuid.uuid4())[1:6]
|
schema_name = "test_schema_%s" % str(uuid.uuid4())[1:6]
|
||||||
|
@ -668,7 +671,7 @@ def create_parent_server_node(server_info):
|
||||||
|
|
||||||
schema = regression.schema_utils.create_schema(connection, schema_name)
|
schema = regression.schema_utils.create_schema(connection, schema_name)
|
||||||
return add_schema_to_parent_node_dict(
|
return add_schema_to_parent_node_dict(
|
||||||
srv_id, db_id, schema[0], schema[1]
|
srv_id, test_db_name, db_id, schema[0], schema[1]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -104,7 +104,8 @@ class ReverseEngineeredSQLTestCases(BaseTestGenerator):
|
||||||
'timestamptz_1': '<TIMESTAMPTZ_1>',
|
'timestamptz_1': '<TIMESTAMPTZ_1>',
|
||||||
'password': '<PASSWORD>',
|
'password': '<PASSWORD>',
|
||||||
'pga_job_id': '<PGA_JOB_ID>',
|
'pga_job_id': '<PGA_JOB_ID>',
|
||||||
'timestamptz_2': '<TIMESTAMPTZ_2>'}
|
'timestamptz_2': '<TIMESTAMPTZ_2>',
|
||||||
|
'db_name': '<TEST_DB_NAME>'}
|
||||||
|
|
||||||
resql_module_list = create_resql_module_list(
|
resql_module_list = create_resql_module_list(
|
||||||
BaseTestGenerator.re_sql_module_list,
|
BaseTestGenerator.re_sql_module_list,
|
||||||
|
@ -752,6 +753,10 @@ class ReverseEngineeredSQLTestCases(BaseTestGenerator):
|
||||||
sql = sql.replace(self.JSON_PLACEHOLDERS['pga_job_id'],
|
sql = sql.replace(self.JSON_PLACEHOLDERS['pga_job_id'],
|
||||||
str(object_id))
|
str(object_id))
|
||||||
|
|
||||||
|
if 'TEST_DB_NAME' in scenario:
|
||||||
|
sql = sql.replace(self.JSON_PLACEHOLDERS['db_name'],
|
||||||
|
self.server_information['test_db_name'])
|
||||||
|
|
||||||
return sql
|
return sql
|
||||||
|
|
||||||
def replace_placeholder_with_id(self, value):
|
def replace_placeholder_with_id(self, value):
|
||||||
|
|
Loading…
Reference in New Issue