2014-02-08 5 views
0

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

Теперь для приложения предприятия. Кажется, что пользовательское соединение нескольких databse более безопасно, чем один пользователь.

например: hr dep. используйте учетную запись пользователя hr db в подключении и dev dep. использование другой.

Какой у вас лучший выбор?

+0

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

+0

Каждый бит кода должен иметь доступ ко всему, что ему требуется, и не более того. – eggyal

ответ

2

У вас может быть одна учетная запись пользователя базы данных для каждого пользователя, такая как «Фрэнк» и «Джейн».

Вы также можете настроить роли, такие как «HR» или «CSR», и назначить своих пользователей ролям. Вы не можете сделать это в MySQL, но можете в MariaDB, хотя у вас тоже есть Oracle;)

У вас также будет учетная запись пользователя для веб-сервера, единственным правом которого является CONNECT и вызов SET ROLE. Вы фактически делегируете аутентификацию веб-серверу. Веб-сервер может аутентифицировать пользователя в базе данных или, возможно, использовать OAUTH.

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

Затем пользователь может выполнять только то, что вы разрешили им для своих ролей.

Это также полезно для аудита, поскольку вы можете просто поместить CURRENT_USER в таблицу аудита.

+0

ваш дизайн очень впечатляет для меня :) интеграция db auth с применением auth кажется возможным! вы действительно используете этот план или слышали sb./проект? – lovespring

+0

Да, я использую его, но с Postgres, а не оракул/mariadb –

1

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

+0

Итак, предположим, что логин пользователя, во-первых, вы должны использовать общее подключение учетной записи db для получения информации о пользователе, затем вы удаляете это соединение и используете другое соединение db для подключения db, кажется, что неэффективность – lovespring