Added BYPASSRLS|NOBYPASSRLS option while creating a Role. #6392
parent
4ce65ea770
commit
5240e8ccf8
Binary file not shown.
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 79 KiB |
|
@ -11,6 +11,7 @@ notes for it.
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
|
release_notes_8_3
|
||||||
release_notes_8_2
|
release_notes_8_2
|
||||||
release_notes_8_1
|
release_notes_8_1
|
||||||
release_notes_8_0
|
release_notes_8_0
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
***********
|
||||||
|
Version 8.3
|
||||||
|
***********
|
||||||
|
|
||||||
|
Release date: 2024-02-08
|
||||||
|
|
||||||
|
This release contains a number of bug fixes and new features since the release of pgAdmin 4 v8.2.
|
||||||
|
|
||||||
|
Supported Database Servers
|
||||||
|
**************************
|
||||||
|
**PostgreSQL**: 12, 13, 14, 15, and 16
|
||||||
|
|
||||||
|
**EDB Advanced Server**: 12, 13, 14, 15, and 16
|
||||||
|
|
||||||
|
Bundled PostgreSQL Utilities
|
||||||
|
****************************
|
||||||
|
**psql**, **pg_dump**, **pg_dumpall**, **pg_restore**: 16.0
|
||||||
|
|
||||||
|
|
||||||
|
New features
|
||||||
|
************
|
||||||
|
|
||||||
|
| `Issue #6392 <https://github.com/pgadmin-org/pgadmin4/issues/6392>`_ - Added BYPASSRLS|NOBYPASSRLS option while creating a Role.
|
||||||
|
|
||||||
|
Housekeeping
|
||||||
|
************
|
||||||
|
|
||||||
|
|
||||||
|
Bug fixes
|
||||||
|
*********
|
|
@ -57,15 +57,13 @@ Use the *Privileges* tab to grant privileges to the role.
|
||||||
drop roles. The default value is *No*.
|
drop roles. The default value is *No*.
|
||||||
* Move the *Create databases* switch to the *Yes* position to control whether a
|
* Move the *Create databases* switch to the *Yes* position to control whether a
|
||||||
role can create databases. The default value is *No*.
|
role can create databases. The default value is *No*.
|
||||||
* The *Update catalog?* switch is disabled until the role is given superuser
|
|
||||||
privileges. Move the *Update catalogs?* switch to the *No* position to control
|
|
||||||
whether a role can update catalogs. The default value is *Yes* when the
|
|
||||||
*Superuser* switch is in the *Yes* position.
|
|
||||||
* Move the *Inherit rights from the parent roles?* switch to the *No* position
|
* Move the *Inherit rights from the parent roles?* switch to the *No* position
|
||||||
if a role does not inherit privileges. The default value is *Yes*.
|
if a role does not inherit privileges. The default value is *Yes*.
|
||||||
* Move the *Can initiate streaming replication and backups?* switch to the *Yes*
|
* Move the *Can initiate streaming replication and backups?* switch to the *Yes*
|
||||||
position to control whether a role can initiate streaming replication or put
|
position to control whether a role can initiate streaming replication or put
|
||||||
the system in and out of backup mode. The default value is *No*.
|
the system in and out of backup mode. The default value is *No*.
|
||||||
|
* Move the *Bypass RLS?* switch to the *Yes* position to control whether a
|
||||||
|
role can bypasses every row-level security (RLS) policy. The default value is *No*.
|
||||||
|
|
||||||
.. image:: images/role_membership.png
|
.. image:: images/role_membership.png
|
||||||
:alt: Role dialog membership tab
|
:alt: Role dialog membership tab
|
||||||
|
|
|
@ -631,7 +631,6 @@ rolmembership:{
|
||||||
|
|
||||||
self.role = row['rolname']
|
self.role = row['rolname']
|
||||||
self.rolCanLogin = row['rolcanlogin']
|
self.rolCanLogin = row['rolcanlogin']
|
||||||
self.rolCatUpdate = row['rolcatupdate']
|
|
||||||
self.rolSuper = row['rolsuper']
|
self.rolSuper = row['rolsuper']
|
||||||
|
|
||||||
return False, ''
|
return False, ''
|
||||||
|
@ -677,7 +676,8 @@ rolmembership:{
|
||||||
self.alterKeys = [
|
self.alterKeys = [
|
||||||
'rolcanlogin', 'rolsuper', 'rolcreatedb',
|
'rolcanlogin', 'rolsuper', 'rolcreatedb',
|
||||||
'rolcreaterole', 'rolinherit', 'rolreplication',
|
'rolcreaterole', 'rolinherit', 'rolreplication',
|
||||||
'rolconnlimit', 'rolvaliduntil', 'rolpassword'
|
'rolconnlimit', 'rolvaliduntil', 'rolpassword',
|
||||||
|
'rolbypassrls'
|
||||||
] if self.manager.version >= 90200 else [
|
] if self.manager.version >= 90200 else [
|
||||||
'rolcanlogin', 'rolsuper', 'rolcreatedb',
|
'rolcanlogin', 'rolsuper', 'rolcreatedb',
|
||||||
'rolcreaterole', 'rolinherit', 'rolconnlimit',
|
'rolcreaterole', 'rolinherit', 'rolconnlimit',
|
||||||
|
@ -977,7 +977,6 @@ rolmembership:{
|
||||||
conn=self.conn,
|
conn=self.conn,
|
||||||
role=self.role,
|
role=self.role,
|
||||||
rolCanLogin=self.rolCanLogin,
|
rolCanLogin=self.rolCanLogin,
|
||||||
rolCatUpdate=self.rolCatUpdate,
|
|
||||||
rolSuper=self.rolSuper,
|
rolSuper=self.rolSuper,
|
||||||
alterKeys=self.alterKeys
|
alterKeys=self.alterKeys
|
||||||
)
|
)
|
||||||
|
@ -1034,7 +1033,6 @@ rolmembership:{
|
||||||
conn=self.conn,
|
conn=self.conn,
|
||||||
role=self.role,
|
role=self.role,
|
||||||
rolCanLogin=self.rolCanLogin,
|
rolCanLogin=self.rolCanLogin,
|
||||||
rolCatUpdate=self.rolCatUpdate,
|
|
||||||
rolSuper=self.rolSuper,
|
rolSuper=self.rolSuper,
|
||||||
alterKeys=self.alterKeys
|
alterKeys=self.alterKeys
|
||||||
).strip('\n')
|
).strip('\n')
|
||||||
|
|
|
@ -25,7 +25,7 @@ define('pgadmin.node.role', [
|
||||||
type: 'coll-role',
|
type: 'coll-role',
|
||||||
columns: [
|
columns: [
|
||||||
'rolname', 'rolvaliduntil', 'rolconnlimit', 'rolcanlogin',
|
'rolname', 'rolvaliduntil', 'rolconnlimit', 'rolcanlogin',
|
||||||
'rolsuper', 'rolcreaterole', 'rolcreatedb', 'rolcatupdate',
|
'rolsuper', 'rolcreaterole', 'rolcreatedb',
|
||||||
'rolinherit', 'rolreplication',
|
'rolinherit', 'rolreplication',
|
||||||
],
|
],
|
||||||
canDrop: true,
|
canDrop: true,
|
||||||
|
|
|
@ -24,13 +24,13 @@ export default class RoleSchema extends BaseUISchema {
|
||||||
rolcreaterole: false,
|
rolcreaterole: false,
|
||||||
rolcreatedb: false,
|
rolcreatedb: false,
|
||||||
rolinherit: true,
|
rolinherit: true,
|
||||||
rolcatupdate: false,
|
|
||||||
rolreplication: false,
|
rolreplication: false,
|
||||||
rolmembership: [],
|
rolmembership: [],
|
||||||
rolmembers: [],
|
rolmembers: [],
|
||||||
rolvaliduntil: null,
|
rolvaliduntil: null,
|
||||||
seclabels: [],
|
seclabels: [],
|
||||||
variables: [],
|
variables: [],
|
||||||
|
rolbypassrls: false,
|
||||||
});
|
});
|
||||||
this.getVariableSchema = getVariableSchema;
|
this.getVariableSchema = getVariableSchema;
|
||||||
this.getMembershipSchema = getMembershipSchema;
|
this.getMembershipSchema = getMembershipSchema;
|
||||||
|
@ -124,7 +124,7 @@ export default class RoleSchema extends BaseUISchema {
|
||||||
type: 'switch',
|
type: 'switch',
|
||||||
group: gettext('Privileges'),
|
group: gettext('Privileges'),
|
||||||
depChange: (state) => {
|
depChange: (state) => {
|
||||||
state.rolcatupdate = state.rolcreaterole = state.rolcreatedb = state.rolsuper;
|
state.rolcreaterole = state.rolcreatedb = state.rolbypassrls = state.rolsuper;
|
||||||
},
|
},
|
||||||
disabled: obj.readOnly,
|
disabled: obj.readOnly,
|
||||||
},
|
},
|
||||||
|
@ -140,18 +140,6 @@ export default class RoleSchema extends BaseUISchema {
|
||||||
type: 'switch',
|
type: 'switch',
|
||||||
disabled: obj.readOnly,
|
disabled: obj.readOnly,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
id: 'rolcatupdate', label: gettext('Update catalog?'),
|
|
||||||
max_version: 90400,
|
|
||||||
group: gettext('Privileges'),
|
|
||||||
type: 'switch',
|
|
||||||
disabled: (state) => {
|
|
||||||
return !state.rolsuper;
|
|
||||||
},
|
|
||||||
readonly: () => {
|
|
||||||
return !(obj.user.is_superuser || obj.user.can_create_role);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
id: 'rolinherit', group: gettext('Privileges'),
|
id: 'rolinherit', group: gettext('Privileges'),
|
||||||
label: gettext('Inherit rights from the parent roles?'),
|
label: gettext('Inherit rights from the parent roles?'),
|
||||||
|
@ -165,6 +153,12 @@ export default class RoleSchema extends BaseUISchema {
|
||||||
min_version: 90100,
|
min_version: 90100,
|
||||||
disabled: obj.readOnly,
|
disabled: obj.readOnly,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: 'rolbypassrls', group: gettext('Privileges'),
|
||||||
|
label: gettext('Bypass RLS?'),
|
||||||
|
type: 'switch',
|
||||||
|
disabled: obj.readOnly,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: 'rolmembership', label: gettext('Member of'), group: gettext('Membership'),
|
id: 'rolmembership', label: gettext('Member of'), group: gettext('Membership'),
|
||||||
disabled: obj.readOnly,
|
disabled: obj.readOnly,
|
||||||
|
|
|
@ -24,7 +24,11 @@ CREATE ROLE {{ conn|qtIdent(data.rolname) }} WITH{% if data.rolcanlogin and data
|
||||||
|
|
||||||
REPLICATION{% else %}
|
REPLICATION{% else %}
|
||||||
|
|
||||||
NOREPLICATION{% endif %}{% if 'rolconnlimit' in data and data.rolconnlimit is number and data.rolconnlimit >= -1 %}
|
NOREPLICATION{% endif %}{% if data.rolbypassrls %}
|
||||||
|
|
||||||
|
BYPASSRLS{% else %}
|
||||||
|
|
||||||
|
NOBYPASSRLS{% endif %}{% if 'rolconnlimit' in data and data.rolconnlimit is number and data.rolconnlimit >= -1 %}
|
||||||
|
|
||||||
CONNECTION LIMIT {{ data.rolconnlimit }}{% endif %}{% if data.rolvaliduntil and data.rolvaliduntil is not none %}
|
CONNECTION LIMIT {{ data.rolconnlimit }}{% endif %}{% if data.rolvaliduntil and data.rolvaliduntil is not none %}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
SELECT
|
SELECT
|
||||||
rolname, rolcanlogin, rolsuper AS rolcatupdate, rolsuper
|
rolname, rolcanlogin, rolsuper
|
||||||
FROM
|
FROM
|
||||||
pg_catalog.pg_roles
|
pg_catalog.pg_roles
|
||||||
WHERE oid = {{ rid }}::OID
|
WHERE oid = {{ rid }}::OID
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
SELECT
|
SELECT
|
||||||
r.oid, r.*, r.rolsuper as rolcatupdate,
|
r.oid, r.*,
|
||||||
pg_catalog.shobj_description(r.oid, 'pg_authid') AS description,
|
pg_catalog.shobj_description(r.oid, 'pg_authid') AS description,
|
||||||
ARRAY(
|
ARRAY(
|
||||||
SELECT
|
SELECT
|
||||||
|
|
|
@ -13,7 +13,8 @@ FROM
|
||||||
CASE WHEN rolcreatedb THEN 'CREATEDB' ELSE 'NOCREATEDB' END || E'\n ' ||
|
CASE WHEN rolcreatedb THEN 'CREATEDB' ELSE 'NOCREATEDB' END || E'\n ' ||
|
||||||
CASE WHEN rolcreaterole THEN 'CREATEROLE' ELSE 'NOCREATEROLE' END || E'\n ' ||
|
CASE WHEN rolcreaterole THEN 'CREATEROLE' ELSE 'NOCREATEROLE' END || E'\n ' ||
|
||||||
-- PostgreSQL >= 9.1
|
-- PostgreSQL >= 9.1
|
||||||
CASE WHEN rolreplication THEN 'REPLICATION' ELSE 'NOREPLICATION' END ||
|
CASE WHEN rolreplication THEN 'REPLICATION' ELSE 'NOREPLICATION' END || E'\n ' ||
|
||||||
|
CASE WHEN rolbypassrls THEN 'BYPASSRLS' ELSE 'NOBYPASSRLS' END ||
|
||||||
CASE WHEN rolconnlimit > 0 THEN E'\n CONNECTION LIMIT ' || rolconnlimit ELSE '' END ||
|
CASE WHEN rolconnlimit > 0 THEN E'\n CONNECTION LIMIT ' || rolconnlimit ELSE '' END ||
|
||||||
{% if show_password %}
|
{% if show_password %}
|
||||||
(SELECT CASE
|
(SELECT CASE
|
||||||
|
|
|
@ -33,7 +33,11 @@ ALTER ROLE {{ conn|qtIdent(rolname) }}{% if 'rolcanlogin' in data %}
|
||||||
|
|
||||||
{% if data.rolreplication %}
|
{% if data.rolreplication %}
|
||||||
REPLICATION{% else %}
|
REPLICATION{% else %}
|
||||||
NOREPLICATION{% endif %}{% endif %}{% if 'rolconnlimit' in data and data.rolconnlimit is number and data.rolconnlimit >= -1 %}
|
NOREPLICATION{% endif %}{% endif %}{% if 'rolbypassrls' in data %}
|
||||||
|
|
||||||
|
{% if data.rolbypassrls %}
|
||||||
|
BYPASSRLS{% else %}
|
||||||
|
NOBYPASSRLS{% endif %}{% endif %}{% if 'rolconnlimit' in data and data.rolconnlimit is number and data.rolconnlimit >= -1 %}
|
||||||
|
|
||||||
CONNECTION LIMIT {{ data.rolconnlimit }}
|
CONNECTION LIMIT {{ data.rolconnlimit }}
|
||||||
{% endif %}{% if 'rolvaliduntil' in data %}
|
{% endif %}{% if 'rolvaliduntil' in data %}
|
||||||
|
|
|
@ -7,6 +7,7 @@ CREATE ROLE "Role1_$%{}[]()&*^!@""'`\/#" WITH
|
||||||
INHERIT
|
INHERIT
|
||||||
CREATEDB
|
CREATEDB
|
||||||
CREATEROLE
|
CREATEROLE
|
||||||
REPLICATION;
|
REPLICATION
|
||||||
|
BYPASSRLS;
|
||||||
|
|
||||||
COMMENT ON ROLE "Role1_$%{}[]()&*^!@""'`\/#" IS 'This is detailed description';
|
COMMENT ON ROLE "Role1_$%{}[]()&*^!@""'`\/#" IS 'This is detailed description';
|
||||||
|
|
|
@ -7,6 +7,7 @@ CREATE ROLE "Role2_$%{}[]()&*^!@""'`\/#" WITH
|
||||||
INHERIT
|
INHERIT
|
||||||
CREATEDB
|
CREATEDB
|
||||||
CREATEROLE
|
CREATEROLE
|
||||||
REPLICATION;
|
REPLICATION
|
||||||
|
BYPASSRLS;
|
||||||
|
|
||||||
COMMENT ON ROLE "Role2_$%{}[]()&*^!@""'`\/#" IS 'This is detailed description';
|
COMMENT ON ROLE "Role2_$%{}[]()&*^!@""'`\/#" IS 'This is detailed description';
|
||||||
|
|
|
@ -2,10 +2,11 @@ ALTER ROLE "Role2_$%{}[]()&*^!@""'`\/#"
|
||||||
NOSUPERUSER
|
NOSUPERUSER
|
||||||
NOCREATEDB
|
NOCREATEDB
|
||||||
NOREPLICATION
|
NOREPLICATION
|
||||||
|
NOBYPASSRLS
|
||||||
CONNECTION LIMIT 100
|
CONNECTION LIMIT 100
|
||||||
|
|
||||||
VALID UNTIL '2050-01-01T00:00:00+05:30'
|
VALID UNTIL '2050-01-01T00:00:00+05:30'
|
||||||
PASSWORD 'xxxxxx';
|
PASSWORD 'xxxxxx';
|
||||||
|
|
||||||
ALTER ROLE "Role2_$%{}[]()&*^!@""'`\/#" IN DATABASE postgres
|
ALTER ROLE "Role2_$%{}[]()&*^!@""'`\/#" IN DATABASE postgres
|
||||||
SET application_name TO 'pg4';
|
SET application_name TO 'pg4';
|
||||||
|
|
|
@ -8,6 +8,7 @@ CREATE ROLE "Role2_$%{}[]()&*^!@""'`\/#" WITH
|
||||||
NOCREATEDB
|
NOCREATEDB
|
||||||
CREATEROLE
|
CREATEROLE
|
||||||
NOREPLICATION
|
NOREPLICATION
|
||||||
|
NOBYPASSRLS
|
||||||
CONNECTION LIMIT 100
|
CONNECTION LIMIT 100
|
||||||
ENCRYPTED PASSWORD '<PASSWORD>'
|
ENCRYPTED PASSWORD '<PASSWORD>'
|
||||||
VALID UNTIL '<TIMESTAMPTZ_1>';
|
VALID UNTIL '<TIMESTAMPTZ_1>';
|
||||||
|
|
|
@ -7,6 +7,7 @@ CREATE ROLE "Role1_$%{}[]()&*^!@""'`\/#" WITH
|
||||||
INHERIT
|
INHERIT
|
||||||
NOCREATEDB
|
NOCREATEDB
|
||||||
NOCREATEROLE
|
NOCREATEROLE
|
||||||
NOREPLICATION;
|
NOREPLICATION
|
||||||
|
NOBYPASSRLS;
|
||||||
|
|
||||||
COMMENT ON ROLE "Role1_$%{}[]()&*^!@""'`\/#" IS 'This is detailed description';
|
COMMENT ON ROLE "Role1_$%{}[]()&*^!@""'`\/#" IS 'This is detailed description';
|
||||||
|
|
|
@ -7,6 +7,7 @@ CREATE ROLE "Role2_$%{}[]()&*^!@""'`\/#" WITH
|
||||||
INHERIT
|
INHERIT
|
||||||
NOCREATEDB
|
NOCREATEDB
|
||||||
NOCREATEROLE
|
NOCREATEROLE
|
||||||
NOREPLICATION;
|
NOREPLICATION
|
||||||
|
NOBYPASSRLS;
|
||||||
|
|
||||||
COMMENT ON ROLE "Role2_$%{}[]()&*^!@""'`\/#" IS 'This is detailed description';
|
COMMENT ON ROLE "Role2_$%{}[]()&*^!@""'`\/#" IS 'This is detailed description';
|
||||||
|
|
|
@ -8,6 +8,7 @@ CREATE ROLE "Role2_$%{}[]()&*^!@""'`\/#" WITH
|
||||||
CREATEDB
|
CREATEDB
|
||||||
NOCREATEROLE
|
NOCREATEROLE
|
||||||
NOREPLICATION
|
NOREPLICATION
|
||||||
|
NOBYPASSRLS
|
||||||
CONNECTION LIMIT 100
|
CONNECTION LIMIT 100
|
||||||
ENCRYPTED PASSWORD '<PASSWORD>'
|
ENCRYPTED PASSWORD '<PASSWORD>'
|
||||||
VALID UNTIL '<TIMESTAMPTZ_1>';
|
VALID UNTIL '<TIMESTAMPTZ_1>';
|
||||||
|
|
|
@ -8,6 +8,7 @@ CREATE ROLE "Role2_$%{}[]()&*^!@""'`\/#" WITH
|
||||||
CREATEDB
|
CREATEDB
|
||||||
NOCREATEROLE
|
NOCREATEROLE
|
||||||
NOREPLICATION
|
NOREPLICATION
|
||||||
|
NOBYPASSRLS
|
||||||
CONNECTION LIMIT 100
|
CONNECTION LIMIT 100
|
||||||
ENCRYPTED PASSWORD '<PASSWORD>'
|
ENCRYPTED PASSWORD '<PASSWORD>'
|
||||||
VALID UNTIL '2050-01-01 00:00:00+05:30';
|
VALID UNTIL '2050-01-01 00:00:00+05:30';
|
||||||
|
|
|
@ -8,6 +8,7 @@ CREATE ROLE "Role2_$%{}[]()&*^!@""'`\/#" WITH
|
||||||
CREATEDB
|
CREATEDB
|
||||||
NOCREATEROLE
|
NOCREATEROLE
|
||||||
NOREPLICATION
|
NOREPLICATION
|
||||||
|
NOBYPASSRLS
|
||||||
CONNECTION LIMIT 100
|
CONNECTION LIMIT 100
|
||||||
ENCRYPTED PASSWORD '<PASSWORD>'
|
ENCRYPTED PASSWORD '<PASSWORD>'
|
||||||
VALID UNTIL '2050-01-01 00:00:00+05:30';
|
VALID UNTIL '2050-01-01 00:00:00+05:30';
|
||||||
|
|
|
@ -8,6 +8,7 @@ CREATE ROLE "Role2_$%{}[]()&*^!@""'`\/#" WITH
|
||||||
CREATEDB
|
CREATEDB
|
||||||
NOCREATEROLE
|
NOCREATEROLE
|
||||||
NOREPLICATION
|
NOREPLICATION
|
||||||
|
NOBYPASSRLS
|
||||||
CONNECTION LIMIT 100
|
CONNECTION LIMIT 100
|
||||||
ENCRYPTED PASSWORD '<PASSWORD>'
|
ENCRYPTED PASSWORD '<PASSWORD>'
|
||||||
VALID UNTIL '2050-01-01 00:00:00+05:30';
|
VALID UNTIL '2050-01-01 00:00:00+05:30';
|
||||||
|
|
|
@ -5,5 +5,6 @@ CREATE ROLE "Role1_$%{}[]()&*^!@""'`\/#" WITH
|
||||||
CREATEROLE
|
CREATEROLE
|
||||||
INHERIT
|
INHERIT
|
||||||
REPLICATION
|
REPLICATION
|
||||||
|
BYPASSRLS
|
||||||
CONNECTION LIMIT -1
|
CONNECTION LIMIT -1
|
||||||
PASSWORD 'xxxxxx';
|
PASSWORD 'xxxxxx';
|
||||||
|
|
|
@ -7,4 +7,5 @@ CREATE ROLE "Role1_$%{}[]()&*^!@""'`\/#" WITH
|
||||||
INHERIT
|
INHERIT
|
||||||
CREATEDB
|
CREATEDB
|
||||||
CREATEROLE
|
CREATEROLE
|
||||||
REPLICATION;
|
REPLICATION
|
||||||
|
BYPASSRLS;
|
||||||
|
|
|
@ -5,5 +5,6 @@ CREATE ROLE "Role1_$%{}[]()&*^!@""'`\/#" WITH
|
||||||
NOCREATEROLE
|
NOCREATEROLE
|
||||||
INHERIT
|
INHERIT
|
||||||
NOREPLICATION
|
NOREPLICATION
|
||||||
|
NOBYPASSRLS
|
||||||
CONNECTION LIMIT -1
|
CONNECTION LIMIT -1
|
||||||
PASSWORD 'xxxxxx';
|
PASSWORD 'xxxxxx';
|
||||||
|
|
|
@ -7,4 +7,5 @@ CREATE ROLE "Role1_$%{}[]()&*^!@""'`\/#" WITH
|
||||||
INHERIT
|
INHERIT
|
||||||
NOCREATEDB
|
NOCREATEDB
|
||||||
NOCREATEROLE
|
NOCREATEROLE
|
||||||
NOREPLICATION;
|
NOREPLICATION
|
||||||
|
NOBYPASSRLS;
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
"rolcreaterole": false,
|
"rolcreaterole": false,
|
||||||
"rolcreatedb": false,
|
"rolcreatedb": false,
|
||||||
"rolinherit": true,
|
"rolinherit": true,
|
||||||
"rolcatupdate": false,
|
|
||||||
"rolreplication": false,
|
"rolreplication": false,
|
||||||
"rolmembership": [],
|
"rolmembership": [],
|
||||||
"seclabels": [],
|
"seclabels": [],
|
||||||
|
@ -36,7 +35,6 @@
|
||||||
"rolcreaterole": false,
|
"rolcreaterole": false,
|
||||||
"rolcreatedb": false,
|
"rolcreatedb": false,
|
||||||
"rolinherit": true,
|
"rolinherit": true,
|
||||||
"rolcatupdate": false,
|
|
||||||
"rolreplication": false,
|
"rolreplication": false,
|
||||||
"rolmembership": [],
|
"rolmembership": [],
|
||||||
"seclabels": [],
|
"seclabels": [],
|
||||||
|
@ -59,7 +57,6 @@
|
||||||
"rolcreaterole": false,
|
"rolcreaterole": false,
|
||||||
"rolcreatedb": false,
|
"rolcreatedb": false,
|
||||||
"rolinherit": true,
|
"rolinherit": true,
|
||||||
"rolcatupdate": false,
|
|
||||||
"rolreplication": false,
|
"rolreplication": false,
|
||||||
"rolmembership": [],
|
"rolmembership": [],
|
||||||
"seclabels": [],
|
"seclabels": [],
|
||||||
|
@ -189,8 +186,8 @@
|
||||||
"rolcreaterole": true,
|
"rolcreaterole": true,
|
||||||
"rolcreatedb": true,
|
"rolcreatedb": true,
|
||||||
"rolinherit": true,
|
"rolinherit": true,
|
||||||
"rolcatupdate": true,
|
|
||||||
"rolreplication": true,
|
"rolreplication": true,
|
||||||
|
"rolbypassrls": true,
|
||||||
"rolmembership": [],
|
"rolmembership": [],
|
||||||
"seclabels": [],
|
"seclabels": [],
|
||||||
"variables": []
|
"variables": []
|
||||||
|
@ -232,6 +229,7 @@
|
||||||
"rolsuper": false,
|
"rolsuper": false,
|
||||||
"rolcreatedb": false,
|
"rolcreatedb": false,
|
||||||
"rolreplication": false,
|
"rolreplication": false,
|
||||||
|
"rolbypassrls": false,
|
||||||
"rolpassword": "abc123",
|
"rolpassword": "abc123",
|
||||||
"rolconnlimit": 100,
|
"rolconnlimit": 100,
|
||||||
"rolvaliduntil": "2050-01-01 00:00:00 +05:30",
|
"rolvaliduntil": "2050-01-01 00:00:00 +05:30",
|
||||||
|
|
|
@ -78,6 +78,7 @@ def get_role_data(lr_pwd):
|
||||||
"rolconnlimit": -1,
|
"rolconnlimit": -1,
|
||||||
"rolcreaterole": "true",
|
"rolcreaterole": "true",
|
||||||
"rolinherit": "true",
|
"rolinherit": "true",
|
||||||
|
"rolbypassrls": "true",
|
||||||
"rolmembership": [],
|
"rolmembership": [],
|
||||||
"rolname": "test_role_%s" % str(uuid.uuid4())[1:8],
|
"rolname": "test_role_%s" % str(uuid.uuid4())[1:8],
|
||||||
"rolpassword": lr_pwd,
|
"rolpassword": lr_pwd,
|
||||||
|
|
|
@ -808,7 +808,7 @@ define('pgadmin.browser.node', [
|
||||||
id: panelId,
|
id: panelId,
|
||||||
title: panelTitle,
|
title: panelTitle,
|
||||||
manualClose: true,
|
manualClose: true,
|
||||||
icon: `dialog-node-icon ${evalFunc(this, this.node_image, dialogProps.itemNodeData) ?? ('icon-' + this.type)}`,
|
icon: `dialog-node-icon ${evalFunc(this, this.node_image, dialogProps.nodeData) ?? ('icon-' + this.type)}`,
|
||||||
content: (
|
content: (
|
||||||
<ErrorBoundary>
|
<ErrorBoundary>
|
||||||
<ObjectNodeProperties
|
<ObjectNodeProperties
|
||||||
|
|
Loading…
Reference in New Issue