Portál AbcLinuxu, 10. května 2025 14:18
Uz asi pul hodiny zkousim zjistit, jak vypsat seznam databazi, ktere patri urcitemu vlastnikovi. Pouzivam psql jako klienta.
Prikaz
\lmi vypise vsechny DB, jenze na serveru jich je tolik, ze se v tom neda vyznat, chtel bych videt jen svoje DB.
Proste neco ve smyslu
select * from pg_database where owner='uzivatel';
\l
s nejakym parametrem?
Řešení dotazu:
[pavel@nemesis ~]$ psql -E postgres Welcome to psql 8.3.9, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit postgres=# \l ********* QUERY ********** SELECT d.datname as "Name", r.rolname as "Owner", pg_catalog.pg_encoding_to_char(d.encoding) as "Encoding" FROM pg_catalog.pg_database d JOIN pg_catalog.pg_roles r ON d.datdba = r.oid ORDER BY 1; ************************** List of databases Name | Owner | Encoding -----------+----------+---------- foo | pavel | UTF8 postgres | postgres | UTF8 template0 | postgres | UTF8 template1 | postgres | UTF8 (4 rows)Pak staci jen zkopirovat dotaz a upravit:
postgres=# SELECT d.datname as "Name", r.rolname as "Owner", pg_catalog.pg_encoding_to_char(d.encoding) as "Encoding" FROM pg_catalog.pg_database d JOIN pg_catalog.pg_roles r ON d.datdba = r.oid WHERE r.rolname = 'pavel' --<<< ORDER BY 1; Name | Owner | Encoding ------+-------+---------- foo | pavel | UTF8 (1 row)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.