Подтвердить что ты не робот

Почему все базы данных имеют общедоступную схему в PostgreSQL?

Мне было любопытно, почему все базы данных в PostgreSQL имеют схему public, доступную для всех пользователей. Я знаю, что могу отменить привилегии и предоставить их одному пользователю, но почему это не по умолчанию?

4b9b3361

Ответ 1

Это не так много объяснений, но см. раздел [5.7.6] [1] в руководстве, но я думаю следующее отвечает на ваш вопрос:

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

Ответ 2

Мое предположение было бы спецификацией SQL. Но, это довольно логично, что бы сделать create user в противном случае, вам нужно явно указать, к какой схеме пользователь имел доступ?

Если у ваших пользователей нет доступа к одному общему ресурсу, почему бы просто не создать для них новую БД? В отличие от MySQL, новая база данных - это новая база данных, а не псевдоним для новой схемы.

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