Что происходит после "DROP DATABASE postgres" - PullRequest
0 голосов
/ 17 мая 2018

У меня есть забавный вопрос о базе данных PostgreSQL: что произойдет, если база данных postgres будет удалена?

dropdb postgres работал.
createdb postgres тоже сработало.
psql работал.

Но я думал, что пользователи будут потеряны. Тем не менее, старые пользователи все еще там.

Итак, где хранятся пользователи для базы данных и какие последствия имеет удаление базы данных postgres?

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

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

Когда вы настраиваете новый сервер, вам нужно что-то для подключения, прежде чем вы сможете запустить свой первый оператор CREATE DATABASE.

Вот и вся база данных postgres: пустая база данных, используемая в качестве цели подключения для команд администратора. Там нет данных, и вы можете оставить их и использовать другое (хотя тот, кто наследует вашу систему, вероятно, не поблагодарит вас за это ...).

Как сказал в своем ответе gil.fernandes, общесерверные объекты, такие как пользователи, доступны из любой базы данных, но не хранятся в какой-либо конкретной базе данных.

0 голосов
/ 17 мая 2018

Метаданные PostgreSQL хранятся в таблицах каталога , которые находятся в схеме pg_catalog. Они доступны как обычные представления и таблицы.

Существует общих таблиц системного каталога , которые совместно используются всеми базами данных. Эти таблицы не затрагиваются при удалении баз данных.

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

Вы можете перечислить все общие таблицы каталога следующим образом:

SELECT relname FROM pg_class
WHERE relisshared AND relkind = 'r';

В документации вы можете найти больше информации о системных каталогах.

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