Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Система защиты БД / 22 сообщений из 22, страница 1 из 1
07.02.2005, 13:26
    #32903940
kryak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
Есть БД (проектируется), необходимо продумать систему защиты БД. Вопрос номер один! Надо ли ее продумывать на уровне проектирования или лучше это сделать только на хранимых процедурах SQL и средствами я зыка программирования.

В ней будет огромное количество записей и пользователей. Вопрос номер два!
Как лучше всего продумать архивацию на уровне проктирования, поскольку часть записей в сокором времени будет не особо используема, но может понадобиться (примерно раз в 5 месяцев :)). Как лучше продумать систему архивации.
...
Рейтинг: 0 / 0
07.02.2005, 13:42
    #32903976
bas
bas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
1. Защита разная бывает. Кому-то достаточно гранты на роли раздать, а кому на уровне строк защита нужна. Вам какая нужна, поподробнее задачу опишите. Но на уровне клиентского приложения не стоит выстраивать защиту, да и выстраивать защиту и от ДБА тоже не надо (нужен компромисс)

2. Это уже назывеется хранилище данных, в эту сторону и копайте.
...
Рейтинг: 0 / 0
07.02.2005, 13:46
    #32903990
kryak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
bas1. Защита разная бывает. Кому-то достаточно гранты на роли раздать, а кому на уровне строк защита нужна. Вам какая нужна, поподробнее задачу опишите. Но на уровне клиентского приложения не стоит выстраивать защиту, да и выстраивать защиту и от ДБА тоже не надо (нужен компромисс)

2. Это уже назывеется хранилище данных, в эту сторону и копайте.

Есть организация и в ней будет установлена будущая БД, пользоваться ей будут все от самых младших и заканчивая директором. Соответсвенно данные им тоже разные будут нужны. Вот и надо продумать разгарничение доступа. Вопрос как лучше?
...
Рейтинг: 0 / 0
07.02.2005, 14:49
    #32904173
Va1entin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
Т.е. все от самых младших и заканчивая директором будут
администрировать БД и писать SQL запросы?

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

Редко используемые данные храните в отдельной базе.
Для архивации, как уже было сказано, проектируйте хранилище.
...
Рейтинг: 0 / 0
07.02.2005, 15:02
    #32904208
PVP
PVP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
kryak Надо ли ее продумывать на уровне проектирования или лучше это сделать только на хранимых процедурах SQL и средствами я зыка программирования.

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

Я строю защиту в двух направлениях: доступ к функциональным режимам системы и доступ к участкам данных.

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

Для ограничения доступа к данным в одном и том же режиме используется классификация данных. Например, имеется древовидный справочник участков работы, назначается доступ пользователей к участкам. В результате этого пользователь может видеть только те данные, которые относятся к его участкам.
...
Рейтинг: 0 / 0
07.02.2005, 15:12
    #32904240
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
Защита данных, как я понимаю, сильно зависит от БД. Например, в Oracle могут применяться пользователи, гранты, view, синонимы, доступ к данным через хранимые процедуры и т.д.
...
Рейтинг: 0 / 0
07.02.2005, 15:37
    #32904325
Va1entin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
Дополнение к моему посту.

О доступе к участкам данных -
поступайте примерно так, как говорил PVP.
Пароль пользователя БД зашивайте
в код приложения, а уже под этим
пользователем БД создайте таблицу
учётных записей пользователей приложения, с паролями.
Приложение будет соединяться с БД под
логином БД, пользователя будуту идентифицировать
по дополнительному паролю.
При этом права на доступ к участкам данных
тоже реализуются на уровне базы.
(Права назначаются по учётным записям
пользователя приложения).

Очень хорошо, если, например, база данных
работает под Windows и имеет встроенную
NTLM - аутентификацию пользователя.
Тогда в базе не надо хранить дополнительно
пароли пользователей приложения.
...
Рейтинг: 0 / 0
07.02.2005, 15:40
    #32904338
PVP
PVP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
tru55Защита данных, как я понимаю, сильно зависит от БД. Например, в Oracle могут применяться пользователи, гранты, view, синонимы, доступ к данным через хранимые процедуры и т.д.

Как бы ни была хорошо организована защита в СУБД, все равно надо готовиться к управлению защитой из интерфейсного модуля. Нужет справочник пользователей, справочник модулей системы, ролей этих пользовалей в каждом модуле, доступа ролей функциям и к данным. Для всего этого надо предусмотреть таблицы. Тогда SQL процедуры или запросы из интерфейского модуля могут управлять доступом.

Ввод в таблицы выполняется из интерфейсного модуля. Не хорошо вынуждать пользователя работать со средствами администратора БД. Главбух может добавить пользователя, дать ему роль, допустить до конкретных режимов работы, бухгалтерских счетов и т.д., при этом главбух не имеет понятия, что такое SQL Server.
...
Рейтинг: 0 / 0
07.02.2005, 15:49
    #32904369
kryak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
По поводу всего сказанного выше.
Защиту планирую постороить так. Создать группы и пользователи в каждой гурппе, раздать им роли в каждой конкретной подсистеме отвести им роли.
Было высказано написать для каждой подсистемы свою систему защиты, это просто невозможно поскольку времени на все это нам столько не выделит!!!

А по поводу архивации остановился на варианте с двумя БД, в одной храняться испльзуемые данные, а во второй архивные (мало или вообще не используемые).

Что по этому всему скажите! Прошу прокомментировать и обосновать.

Используемые средства:
Среда программирования Delphi 7
Среда проектирования Rational Rose
Сервер БД Microsoft SQL Server
...
Рейтинг: 0 / 0
07.02.2005, 15:56
    #32904388
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
2 PVP
Во-первых, смотря какие порядки в фирме. Часто вопросы доступа возлагаются только на программистов (администраторов), а не на "главного бухгалтера". Хотя конечно, для удобства можно создать адимистративный модуль, но часть из перечисленных структур лишняя. Таблица пользователей есть в базе, зачем ее дублировать? Различие прав доступа часто решаются через роли, которых не так много, поэтому вполне могут быть созданы программером. Хотя часть защиты может предсматриваться в структуре (например, фиксация имени пользователя, осущ. ввод / модификацию)
...
Рейтинг: 0 / 0
07.02.2005, 16:02
    #32904400
Va1entin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
2tru55

А как вы реализуете, скажем, ситуацию?
Пользователь А из отдела 1 должен
иметь доступ только к данным отдела 1.
Пользователь Б из отдела 2 должен
иметь доступ только к данным отдела 2.
Пользователь В (руководитель) должен
иметь доступ только ко всем данным?
...
Рейтинг: 0 / 0
07.02.2005, 16:05
    #32904405
guest_20040621
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
> Создать группы и пользователи в каждой гурппе, раздать им роли в каждой
> конкретной подсистеме отвести им роли.

Прочтите хотя бы что-нибудь по обсуждаемой проблеме, статей в Сети просто валом. Каноническая модель включает в себя:

1. Ограничение доступа на уровне пользователей базы данных;
2. Ограничение доступа на уровне интерфейса;
3. Ограничение доступа на уровне групп пользователей, ролей пользователей или пользователей.

В конкретной реализации можно использовать любое сочетание из перечисленных.
...
Рейтинг: 0 / 0
07.02.2005, 16:05
    #32904406
Vadim_Maximov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
Va1entin2tru55

А как вы реализуете, скажем, ситуацию?
Пользователь А из отдела 1 должен
иметь доступ только к данным отдела 1.
Пользователь Б из отдела 2 должен
иметь доступ только к данным отдела 2.
Пользователь В (руководитель) должен
иметь доступ только ко всем данным?
Элементарно, Ватсон. С помощью fine grained access control (aka row level security) можно еще и не такое реализовать...
Это в Оракле, конечно...
...
Рейтинг: 0 / 0
07.02.2005, 16:08
    #32904410
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
to Va1entin
Я же не говорил, что совсем не используются таблицы для ограничения доступа. Конечно, в данном случае будет использоваться таблица M:M (пользователь - отдел). Другое дело, что подобную вещь (если она понадобится позже) легко добавить, используя view
...
Рейтинг: 0 / 0
07.02.2005, 16:17
    #32904429
Va1entin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
kryakСервер БД Microsoft SQL Server
...
Рейтинг: 0 / 0
07.02.2005, 16:19
    #32904432
M0us
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
В общем надо делать так:
Юзеры и Роли на SQL сервере это юзеры и группы на реализации.

Однозначно:
1) надо создавать Roles и привязывать их к Группам.
2) Создавать Юзверей и прописывать их права на доступ к хранимым процедурам; таблицам и их полям.

Написать модуль администратора в котором надо все разбить на "логические разделы", которые и привязать к tables и StoredProc.

и т.д. в таком же духе....
всеж не скажешь в трех культурных словах
...
Рейтинг: 0 / 0
07.02.2005, 16:19
    #32904434
kryak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
Va1entin kryakСервер БД Microsoft SQL Server

Спасибо за эту глубокую мысль....
...
Рейтинг: 0 / 0
07.02.2005, 16:20
    #32904436
Va1entin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
2tru55

Вопрос снимается.
...
Рейтинг: 0 / 0
07.02.2005, 16:22
    #32904439
M0us
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
Кстати, а кто-нибудь знает независимые утилитки административного типа, чтобы не автоматизировать всю чушь, которую я выше накорябал.
...
Рейтинг: 0 / 0
07.02.2005, 16:24
    #32904445
guest_20040621
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
> 1) надо создавать Roles и привязывать их к Группам.
> 2) Создавать Юзверей и прописывать их права на доступ к хранимым процедурам;
> таблицам и их полям.

Поражает глубина мысли.
...
Рейтинг: 0 / 0
07.02.2005, 16:30
    #32904452
Va1entin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
2kryak
Эта мысль предназначалась не вам.

Дополнительно.
Если всё работает в одном домене,
удобно будет испльзовать Windows-аутентификацию.
(По-моему, Delphi должен это поддерживать,
не использовал его для этих целей).
Как платформа для клиентского приложения
он вполне подойдёт.
...
Рейтинг: 0 / 0
07.02.2005, 17:54
    #32904652
M0us
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система защиты БД
Тема закрыта, все вовросы решены не за одним литром пива...
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Система защиты БД / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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