как получить список баз данных, которыми владеет пользователь? - PullRequest
4 голосов
/ 13 мая 2010

Мне бы хотелось узнать (и удалить) все базы данных, принадлежащие владельцу в postgres 8.4.3 Я также новичок в postgres, и хотя я могу и буду читать всю инструкцию сегодня, которую я был вынужден использовать

    for i in  $(psql -l |grep novicedba | awk '{print $1}')

psql -d postgres -c " drop database \"$i\""

от отчаяния. Что такое postgresql способ сделать это?

1 Ответ

5 голосов
/ 13 мая 2010

Вместо поиска для novicedba вы можете запустить SQL-запрос к таблице pg_database:

SELECT datname
FROM pg_database JOIN pg_authid ON pg_database.datdba = pg_authid.oid
WHERE rolname = 'novicedba'

Получив это, вы можете перебирать строки и отбрасывать каждую из них. Это безопаснее, чем первый метод, потому что он проверяет точное поле владельца, а не всю строку вывода для подстроки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...