powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ограничение (разрешение) доступа - помогите советом.
9 сообщений из 9, страница 1 из 1
Ограничение (разрешение) доступа - помогите советом.
    #32022121
Restless
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день (вечер),

помогите советом как лучше организовать security для пользователей бухгалтерской задачи, чтобы в зависимости от ролей они имели разный доступ к данным (процедурам), то есть кто-то может только читать данные (например получать отчеты), другие только вводить данные (без права получения отчетов), третьи - чатать и вводить данные, но без права processing'a и так далее.

На данный момент в нашей компании есть вариант, который мне кажется не совсем верный, а именно:
- все пользовательские экраны и кнопки управления на каждом экране занесены в таблицу.
- создается несколько профайлов в которых определяется доступ к каждому элементу управления (кнопке)
- устанавливается для пользователя (по id) принадлежность к тому или иному профайлу
- при старте пользовательского интерфейса считывается его id и доступ из таблицы с профайлами
- ...........

То есть, все это никак не использует security самого SQL сервера.
Может кто-то бросить линки с описанием правильного подхода к этой проблеме!?

Спасибо за любые советы.
...
Рейтинг: 0 / 0
Ограничение (разрешение) доступа - помогите советом.
    #32022193
Фотография Александр Гладченко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Ограничение (разрешение) доступа - помогите советом.
    #32022268
dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Александр Гладченко
человеку нужен доступ к логическим объектам - отчеты, документы и проч., к-е размазаны по нескольким таблицам и sp.

2 Restless
надо, думая о WinNT, построить список "логический объект-логическая операция-юзер", или дерево "логический объект-родительский объект-логическая операция-юзер"
- для разграничения доступа хватит. Именно такой подход, как у тебя - проверять и гасить кнопки (доступ к логич. операциям).
Профайл - нехорошее слово, надо ПРОФИЛЬ
Безопасность самого сервера нужна
1) для разработчиков/администраторов, которым не всю информацию можно показывать/изменять
2) для отказа левому доступу через Access/QA/EM и др.

Можно связать доступ к логическим объектам с доступом к sp, к-е этот доступ реализуют
но придется еще и закрывать доступ на уровне строк таблиц, т.к. задач типа дать доступ к складу 1 и запретить к складу 2 - навалом.

Короче, надо всегда помнить, что работаем мы с логическими объектами, а сервер - с физическими.
...
Рейтинг: 0 / 0
Ограничение (разрешение) доступа - помогите советом.
    #32022356
Фотография Александр Гладченко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если закрывать доступ к кнопкам и элементам управления, это не спасёт от доступа к данным иными, чем программа средствами (например, QA).
Если давать доступ к таблицам, возникают трудности при работе с нормализованными данными, да и не рекомендуют давать доступ на уровне таблиц.
Зато доступ к представлениям или процедурам как раз давать рекомендуют...
С помощью пользовательских ролей или ролей приложений, можно этот доступ раздавать или блокировать (см. ссылки), а уже в роли можно включать или NT логины или NT группы. В таком случае, разграничение прав можно будет осуществлять не затрагивая SQL сервер, а только средствами NT.
...
Рейтинг: 0 / 0
Ограничение (разрешение) доступа - помогите советом.
    #32022361
dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Александр Гладченко
еще раз:
нужено ограничение доступа к логическим объектам - отчеты, документы и проч., к-е размазаны по нескольким таблицам и sp. Не надо смешивать доступ к sp и доступ к логическим объектам. Ограничение доступа к логическим объектам - надстройка (усиление ограничений) над ограничениями доступа к объектам SQL-сервера

таблица реквизитов
реквизит А
реквизит Б
..........
Требуется задать ограничение:
Пользователь С не может при создании документа использовать реквизит Б, но может использовать реквизит А. Можно, кончно, наделать view, но вот конкретный пример: 20 складов, 50 операторов. Право на отгрузку товара только со своего склада. Причем одним view на один склад дело не ограничится. Как я уже говорил, данные, по которым формируется документ, размазаны по многим таблицам. Количество строк во всех view будет превосходить количество строк во всех таблицах.
...
Рейтинг: 0 / 0
Ограничение (разрешение) доступа - помогите советом.
    #32022380
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда Вам нужно во все таблицы добавлять поле, которое будет обозначать права, или, что наверное лучше, или нет, создать таблицу, в которой для каждого юзера можно хранить спиок идентификаторов и типов того, чего Вы хотите ограничить или неограничить.

Помоему, никак иначе нельзя сделать права для конкретной записи в любой таблице. Короче, кошмар это.
Может как то по-другому?
...
Рейтинг: 0 / 0
Ограничение (разрешение) доступа - помогите советом.
    #32022386
Фотография Александр Гладченко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry <-
ещё раз: эти самые логические объекты - это и есть представления или процедуры. Если это селекты на живые таблицы - то это не правильно.
И не нужно будет городить огород из самопального механизма разграничения доступа к избранным полям. Всё можно сделать только стандартными средствами.
...
Рейтинг: 0 / 0
Ограничение (разрешение) доступа - помогите советом.
    #32022393
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если человеку нужно ограничивать права на записи, то тут нет стандартных средств.

Пусть уж определится
...
Рейтинг: 0 / 0
Ограничение (разрешение) доступа - помогите советом.
    #32022455
dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте определимся:
Требуется администрировать на уровне документов и операций над ними.

доступ к таблицам закрыт, все выборки данных идут через sp, доступ к которым также закрыт всем, кроме application role и операторы пароля не знают. Данные для логического объекта документ_1 для оператора_1 формируются вызовами sp (нескольких). Существуют, напр., ограничения на входные параметры, которые зависят от типа документа, операции, оператора, даты, .... хранить которые в клиентском коде невозможно, поскольку операторы и ограничения постоянно меняются.
Существование одного логического объекта (документа) обеспечивается десятком таблиц и работающими с ними sp. Т.е. всего около 50 объектов sql-сервера. Но нам нужна информация о том, что эти 50 объектов сервера логически объединены (доступ к объектам и контроль.
Вырубили свет, допишу потом
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ограничение (разрешение) доступа - помогите советом.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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