бд.
REVOKE CONNECT ON DATABASE db_name FROM PUBLIC;
После выполнения команды возможность подключения все равно остается.
Что я делаю не так?
“всех” — это FROM ALL; надо посмотреть через \l+ что там по настройкам для базы
from ALL не работает postgres=# REVOKE CONNECT ON DATABASE db_name FROM ALL; ОШИБКА: ошибка синтаксиса (примерное положение: "ALL") Версия pg server 9.6.11
\l+ — смотреть и убирать у тех, у кого есть доступ
Попробовал, все равно пользователь db_user может подключиться REVOKE CONNECT ON DATABASE db_name FROM db_user; Это может быть потому что у него права superuser ? Или может pg_hba.conf переопределяет параметр?
если просто на время для всех закрыть, то вроде еще можно через ALTER DATABASE ... WITH connection limit 0 или ALTER DATABASE ... WITH allow_connections false, причем 2 вариант не даст зайти даже суперпользователю
Да просто ищу способ отключить доступ к бд или саму бд. Но сделать это максимально просто, чтобы потом в случае если понадобиться можно было так же просто ее вернуть в эксплуатацию. Думал что получиться через REVOKE CONNECT ON DATABASE это провернуть.
allow_connection false, вернуть просто установить параметр в true
superuser-а так не закроешь. отберите superuser у всех, кроме postgres
allow_connection никому не дает попасть в базу, проверено, однако суперпользователь в базе postgres может разрешить соединения обратно
а вообще, базу бы обновить следует
А ренэйм датабасе какого-нибудь нет? А докер стоп или под отрубить если в Кубе или порты поменять? То есть, использовать инфраструктурные ломалки вместо постгревых
Спасибо, попробую. Да, сервер собираемся обновлять. Как раз таки нашли пачку неиспользуемых бд, но так как опыта с пг немного не было понимания как максимально просто их вывести из работы. Чтобы потом по прошествии времени удалить.
Как вариант, rename да, но думал найти более корректный способ. Без ломалок)
ну я старые через allow_connection отключал, вернуть так-же легко, как и отключить
Спасибо, то что нужно) Сработало.
Обсуждают сегодня