]> git.joonet.de Git - adminer.git/commitdiff
PostgreSQL: Show only accessible databases
authorThomas Daniels <daniels.thomas@pm.me>
Mon, 31 Jul 2023 23:16:29 +0000 (01:16 +0200)
committerJakub Vrana <jakub@vrana.cz>
Wed, 19 Feb 2025 10:16:37 +0000 (11:16 +0100)
adminer/drivers/pgsql.inc.php
changes.txt

index 198e642945a764f03e51cf21e98648fc35a3c833..80f5b13e53b225a8f2a9be6eed7b50cce733a94a 100644 (file)
@@ -274,7 +274,9 @@ if (isset($_GET["pgsql"])) {
        }
 
        function get_databases() {
-               return get_vals("SELECT datname FROM pg_database WHERE has_database_privilege(datname, 'CONNECT') ORDER BY datname");
+               return get_vals("SELECT d.datname FROM pg_database d JOIN pg_roles r ON d.datdba = r.oid
+                 WHERE d.datallowconn = TRUE AND has_database_privilege(d.datname, 'CONNECT') AND pg_has_role(r.rolname, 'USAGE')
+                 ORDER BY d.datname");
        }
 
        function limit($query, $where, $limit, $offset = 0, $separator = " ") {
index 8bceca72d51307e01eb066dde31120a553d60b0a..e2daeed1e52fb1a0f6fa364042dd09c05c1ccb96 100644 (file)
@@ -1,5 +1,6 @@
 Adminer 4.9.1-dev:
 Support PHP 8.3
+PostgreSQL: Show only accessible databases
 
 Adminer 4.9.0:
 Validate connection to server in HTTP based drivers