Psql
如何使用 psql 按所有者過濾數據庫?
我知道我可以使用以下命令列出我的 postgres 數據庫:
# list only the databases psql -U openerp -q -t -c "select datname from pg_database;" template1
要麼
# show a full listing of databases psql template1 -U openerp -l
如何按所有者“openerp”過濾數據庫?
datdba
欄位只是一個數字……我該如何映射它?
對於這樣的事情,您需要
pg_database
直接查詢。該owner
欄位是對 的引用pg_catalog.pg_authid.oid
,但這是一個僅超級使用者可訪問的表。有一個視圖,pg_catalog.pg_roles
將 id 作為oid
屬性公開,因此您可以:select datname, rolname AS dbowner from pg_database d inner join pg_roles r on (d.datdba = r.oid);