powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Организация доступов из приложения к БД
12 сообщений из 12, страница 1 из 1
Организация доступов из приложения к БД
    #36447551
pilesoser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Начал разбираться в проектировании БД и систем, и возник следующий вопрос:

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

1) В данной системе может быть любое кол-во пользователей 10....n в разумных приделах конечно.:)
2) Приложение создается полностью на модульной основе с периодическим добавлением новых модулей и новым функционалом, т.е изначально не известен полный функционал системы.
3) Большое кол-во различных вариаций доступа к тем или иным данным в БД.

Так вот, как лучше всего организовать доступ пользователей из ПО в БД:

1) ПО подключается к БД под одной какой-то определенной учетной записью с длинным стойким паролем и доступом на запись во все таблицы, доступы непосредственного пользователя разграничиваются программно непосредственно в ПО по выбранным в нем доступам.

2) Писать очень большой доп. модуль к ПО который будет создавать конкретных пользователей в БД и раздавать им гранты на структуру таблиц, на основе необходимых доступов в ПО.
...
Рейтинг: 0 / 0
Организация доступов из приложения к БД
    #36447614
Vika Vinner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pilesoserПредположим есть задача создать довольно крупную систему и БД к ней, тема в принципе значения не имеет .
Обычно создаётся БД и системы к ней

А вот с темой я бы не торопилась с голословным утверждением. Есть законы обеспечения конфидециальности тех или иных данных и доступа к ним различными уровнями пользователей. Коллега - я бы обратилась с ЭТИМИ вопросами к хранителям безопасности Вашего Бизнеса.
...
Рейтинг: 0 / 0
Организация доступов из приложения к БД
    #36447791
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pilesoser1) ПО подключается к БД под одной какой-то определенной учетной записью с длинным стойким паролем и доступом на запись во все таблицы, доступы непосредственного пользователя разграничиваются программно непосредственно в ПО по выбранным в нем доступам.

Только надо обеспечить недоступность этого пароля
...
Рейтинг: 0 / 0
Организация доступов из приложения к БД
    #36449746
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pilesoser
1) ПО подключается к БД под одной какой-то определенной учетной записью с длинным стойким паролем и доступом на запись во все таблицы, доступы непосредственного пользователя разграничиваются программно непосредственно в ПО по выбранным в нем доступам.

2) Писать очень большой доп. модуль к ПО который будет создавать конкретных пользователей в БД и раздавать им гранты на структуру таблиц, на основе необходимых доступов в ПО.

Дык, а что в первом случае вам не надо писать модуль для управления доступами?

На счёт размера модуля я сомневаюсь. Можно под каждый новый модуль сразу создавать роли БД и из админского РМ выдавать их пользователям. Можно сразу ограничиться ролью "<модуль> только чтение" и ролью "<модуль> полный доступ" и т.д.

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

Как раз тот случай, когда бизнес логику (разграничение доступа) следует сосредоточить в СУБД а не в клиентских модулях.
...
Рейтинг: 0 / 0
Организация доступов из приложения к БД
    #36452266
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vika VinnerОбычно создаётся БД и системы к ней +1
pilesoser1) ПО подключается к БД под одной какой-то определенной учетной записью с длинным стойким паролем и доступом на запись во все таблицы, доступы непосредственного пользователя разграничиваются программно непосредственно в ПО по выбранным в нем доступам. Имеется ввиду, что длинный стойкий пароль "зашит" в самом ПО?
Очень плохое решение.

И что означает фраза "доступы непосредственного пользователя разграничиваются программно непосредственно в ПО по выбранным в нем доступам"? Каждый модуль сам решает, что можно, а что нельзя?

pilesoser2) Писать очень большой доп. модуль к ПО который будет создавать конкретных пользователей в БД и раздавать им гранты на структуру таблиц, на основе необходимых доступов в ПО. Во-первых, более-менее развитые СУБД поставляются с готовыми инструментами для управления доступом пользователей. Почему вы так уверены, что функциональности этой "тулзы" не хватит?

Во-вторых, с чего вы взяли, что это "очень большой" модуль?

В-третьих, нафига пользователям "гранты на структуру таблиц"? О чем речь-то?

Вобщем? поддерживаю мнение mcureenab: разбирайтесь с ролями.

Есть еще вполне рабочий вариант: огранизация работы клиентского ПО через хранимые процедуры и раздача прав на их запуск, опять же через роли БД. В этом случае "клиент" вообще ничего не знает о структуре таблиц. И это хорошо! (c)
...
Рейтинг: 0 / 0
Организация доступов из приложения к БД
    #36639148
pilesoser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, извиняюсь за долгое отсутствие.
Возможно, да написал не совсем понятно, попробую подойти с другого бока.

Итак:

Задача:
1) Предположим есть самая проста задача хранить в БД какие-то действия пользователей. Для простоты пусть это будет 2 поля в одной таблице БД ( имя пользователя, действие).
2) Кол-во таких пользователей заранее не известно.
3) Каждый такой пользователь должен иметь имя и пароль чтобы смотреть свои действия, а так же действия того пользователя к которому ему может быть предоставлен доступ.
4) Есть какой-то графический интерфейс для работы с системой.
5) Создание пользователей, раздача доступов должно происходить в данном GUI, без использования встроенных менеджеров SQL серверов.

Вопрос:
Каким образом предоставлять доступ пользователей и приложения к БД?

Варианты:
1) Каждому пользователю программным путем через GUI создавать пользователя на SQL сервере давать соответствующие гранты. Но тогда возникает проблема что например продвинутый пользователь может напрямую подключиться к БД и сделать select всей таблицы по всем пользователям. Выход из данной проблемы я вижу один: использовать схемы для каждого пользователя, но тогда встает например вопрос что делать если нужно произвести какую-то большую выборку по всем пользователями?

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

3) Возможно где я ошибаюсь изначально. :)

P.S: Пример полностью выдуманный, а сам проект как таковой не делается внутри конкретной компании, по-этому ответы типа "решение о рисках ухода той или иной информации должны принимать руководители" не предлагать.
...
Рейтинг: 0 / 0
Организация доступов из приложения к БД
    #36639553
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pilesoserВопрос:
Каким образом предоставлять доступ пользователей и приложения к БД?
Если это вопрос чисто теоритический, то применяем на практике такой подход.
- что-то указываем в некой группе доступа
- в конкретном пароле перечисляем в какие он группы входит + добавляем некие индивидуальные установки
...
Рейтинг: 0 / 0
Организация доступов из приложения к БД
    #36639585
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pilesoser
3) Возможно где я ошибаюсь изначально. :)


Точно, вот здесь
pilesoser
1) <skipped>продвинутый пользователь может напрямую подключиться к БД и сделать select всей таблицы по всем пользователям<skipped>

Права нужно (и ведь можно!) хранить так, чтобы никакой пользователь, кроме админа (возможно даже не системного, и даже не администратора БД, а администратора по безопасности) не имел доступа к всей таблице. Способы решения - зависят от выбранной СУБД...
...
Рейтинг: 0 / 0
Организация доступов из приложения к БД
    #36639604
pilesoser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вот здесь можно по подробнее. Решение на базе MS Sql 2008.
...
Рейтинг: 0 / 0
Организация доступов из приложения к БД
    #36639607
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pilesoserРешение на базе MS Sql 2008.
Так это точно не в раздел "Проектирование БД"...
...
Рейтинг: 0 / 0
Организация доступов из приложения к БД
    #36639618
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой,

есть средства, построенные на шифровании данных, которые позволяют не пускать к открытым данным даже админа. Аудит, резервное копирование - пожалуйста. Расшифровать - фигу.
...
Рейтинг: 0 / 0
Организация доступов из приложения к БД
    #36639712
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pilesoser 1) Каждому пользователю программным путем через GUI создавать пользователя на SQL сервере давать соответствующие гранты. Но тогда возникает проблема что например продвинутый пользователь может напрямую подключиться к БД и сделать select всей таблицы по всем пользователям. Выход из данной проблемы я вижу один: использовать схемы для каждого пользователя, но тогда встает например вопрос что делать если нужно произвести какую-то большую выборку по всем пользователями?Схемы в топку - не для этого они. Вместо грантов на таблицы - гранты на вьюхи или хранимки которые фильтруют по имени пользователя.
pilesoser 5) Создание пользователей, раздача доступов должно происходить в данном GUI, без использования встроенных менеджеров SQL серверов.
Даже встроенные менеджеры SQL серверов выдают create user ...
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Организация доступов из приложения к БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]