Пользовательская CMS PostgreSQL / PHP - несколько схем в рамках единой базы данных - PullRequest
1 голос
/ 16 июля 2010

Я пишу CMS с использованием PHP и PostgreSQL.CMS может запускать несколько сайтов из одной кодовой базы, используя уникальный набор таблиц для сайта / домена, в зависимости от того, какие функции включены.

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

Мой вопрос заключается в том, есть ли какие-либо последствия для безопасности, связанные с использованием одной схемы на сайт в одной и той же базе данных?был действительно полезен в понимании плюсов и минусов в любом случае, однако он не затрагивает аспекты безопасности.Выбранный ответ гласит, что «схема» PostgreSQL эквивалентна «базе данных» MySQL.Если это так, то мне удобен такой подход.Однако есть ли какие-либо проблемы безопасности, о которых мне следует знать?Насколько я понимаю, гранулярные разрешения, используемые PostgreSQL, должны защищать каждую схему в данной базе данных, однако я не уверен на 100% в этом.один запрос для пользователя с разрешениями на несколько схем?

Будем благодарны за любые мысли, заранее.

Ответы [ 2 ]

1 голос
/ 16 июля 2010

Они смогут увидеть, что другая схема и таблицы существуют, но не смогут получить к ним доступ.Каталоги Postgres, содержащие такую ​​информацию, не могут быть заблокированы таким образом.Это известное «ограничение» разделения по схеме.

В противном случае, если безопасность настроена правильно, они не смогут получить доступ к какой-либо информации за пределами своей схемы.

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

1 голос
/ 16 июля 2010

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

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

...