Почему все базы данных имеют открытую схему в PostgreSQL? - PullRequest
34 голосов
/ 25 января 2010

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

Ответы [ 2 ]

34 голосов
/ 25 января 2010

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

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

1 голос
/ 25 января 2010

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

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

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

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