powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Разграничение прав
25 сообщений из 84, страница 1 из 4
Разграничение прав
    #35948778
Nahel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Делаю систему соглосования ТЗ, столкнулся с вопросом о разграничение прав пользователей.
В силу неуверенного знания MS SQL, решил это все реализовать на клиенте, т.е. как у 1С. Только как это лучше сделать затрудняюсь. Может есть статьи о реализации данного вопроса??
Спасибо за рание.
...
Рейтинг: 0 / 0
Разграничение прав
    #35948788
Tosh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что есть "разграничение прав"? - это право на использование того или иного объекта БД (смотрим доку по БД) или право на определенные операции с определенной записью таблицы БД (читаем доки по RLS)
...
Рейтинг: 0 / 0
Разграничение прав
    #35948793
Nahel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Toshчто есть "разграничение прав"? - это право на использование того или иного объекта БД (смотрим доку по БД) или право на определенные операции с определенной записью таблицы БД (читаем доки по RLS)
право на определенные операции с определенной записью таблицы БД.
а что такое RLS?
...
Рейтинг: 0 / 0
Разграничение прав
    #35948817
Tosh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nahel, Row Level Security или разграничение прав на уровне записи

с 1С не работал - не знаю как там это все реализовано, но вообще - это достаточно гемморойная штука
...
Рейтинг: 0 / 0
Разграничение прав
    #35948818
Tosh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Разграничение прав
    #35948847
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NahelДелаю систему соглосования ТЗ

В силу неуверенного знания MS SQL, решил это все реализовать на клиенте, т.е. как у 1С.
оригинально.

Вы делаете ТЗ и одновременно программист, или ставите задачи "как в 1С" другим, потому что "не знаете"?
ЗЫ. В 1С нет СУБД, а есть набор файлов dbf
...
Рейтинг: 0 / 0
Разграничение прав
    #35948907
Фотография AlexandrPlus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одна из top-тем при разработке ИС!

Мне нравится то, что исходит от Oracle-истов и систем на Oracle типа Монополия.

Права на интерфейсы (на поля, на пункты меню, ...), права на выполнение какие-то процедур по обработке и преобразования данных в БД, права вообще на объекты БД.

Что согласуется с концепцией максимального отделения друг от друга ИНТЕРФЕЙСОВ, БИЗНЕС-ЛОГИКИ, ДАННЫХ.
Права на интерфейсы, права на осуществление действий по бизнес-логике, права на вообще объекты БД.

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


Какие контр-мнения такому подходу?
...
Рейтинг: 0 / 0
Разграничение прав
    #35948911
Nahel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tosh вот
вот
вот
последняя ссылочка вроде то что надо

Petro123NahelДелаю систему соглосования ТЗ

В силу неуверенного знания MS SQL, решил это все реализовать на клиенте, т.е. как у 1С.
оригинально.

Вы делаете ТЗ и одновременно программист, или ставите задачи "как в 1С" другим, потому что "не знаете"?
ЗЫ. В 1С нет СУБД, а есть набор файлов dbf
ну есть 1с и под mssql
так упорядочу свои мысли )
1. У нас в организации для того чтобы реализовать требование пользователя (елси оно объемное) создается ТехЗадание на данное требование/заявку
2. ТехЗадание согласовывается несколькими людьми
3. Если ТЗ успешно согласовано то оно передается на разработку
Это так в краце, т.е. урезаный документооборот
На счет разграничения прав. "Как в 1С" я имел ввиду, реализацию доступа к различным документам, справочникам, т.е. есть некий набор прав разрешающий/запрещаяющий действия с документами/справочниками включеные в этот набор, ну а затем этот набор применяется к пользователю.
Ранее эту задачу я реализовал на Lotus Domino переделав часть системы Босс-Референт, сейчас хочу перетащить это дело на MS SQL а клиента написать на MSVC++.
Соответственно встал вопрос о реализации прав пользователей.
...
Рейтинг: 0 / 0
Разграничение прав
    #35948921
Nahel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexandrPlusОдна из top-тем при разработке ИС!

Мне нравится то, что исходит от Oracle-истов и систем на Oracle типа Монополия.

Права на интерфейсы (на поля, на пункты меню, ...), права на выполнение какие-то процедур по обработке и преобразования данных в БД, права вообще на объекты БД.

Что согласуется с концепцией максимального отделения друг от друга ИНТЕРФЕЙСОВ, БИЗНЕС-ЛОГИКИ, ДАННЫХ.
Права на интерфейсы, права на осуществление действий по бизнес-логике, права на вообще объекты БД.

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


Какие контр-мнения такому подходу?
да скорее всего права на интерфейс меня интересует
...
Рейтинг: 0 / 0
Разграничение прав
    #35949033
Фотография AlexandrPlus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nahel
да скорее всего права на интерфейс меня интересует

Тогда, если у ИС не будет развития или включения в какую-то ИС, то для простоты сделать пользователей ИС.
А всем сетев. польз. закрыть доступ к БД (кроме админов и разрабов само собой), а точнее оставить одного-двух польз. БД, имена и пароли (явки) которых будут секретны.
...
Рейтинг: 0 / 0
Разграничение прав
    #35949041
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nahel
ну есть 1с и под mssql

===== видишь суслика?... а он там есть :)

1. У нас в организации для того чтобы реализовать требование пользователя (елси оно объемное) создается ТехЗадание на данное требование/заявку
2. ТехЗадание согласовывается несколькими людьми
3. Если ТЗ успешно согласовано то оно передается на разработку

=== ну и какое отношение "требование пользователя" имеет к архитектуре построения прав?
Там пишется что "Отдел Иван Иваныча не должен видеть зарплату Иван Петровича"

Ранее эту задачу я реализовал на Lotus Domino сейчас хочу перетащить это дело на MS SQL

= в лотусе нет СУБД. Сравнил ежа и носрога.

а клиента написать на MSVC++.

===== составь сначала ТЗ, а программирование отдельно.
...
Рейтинг: 0 / 0
Разграничение прав
    #35949050
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexandrPlusКакие контр-мнения такому подходу?
нет такого подхода.
Защищают данные, а не пункты меню
...
Рейтинг: 0 / 0
Разграничение прав
    #35949085
Фотография AlexandrPlus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123AlexandrPlusКакие контр-мнения такому подходу?
нет такого подхода.

есть какая-то "классика" что ли?

Petro123
Защищают данные, а не пункты меню

Да, защищают информацию, но по-разному, в том числе - disabled пункты меню или вообще на показав пункты меню, через которые может быть вызваны интерфейсы, через которые может быть осуществлен доступ к данным.
И выглядит это неплохо.
...
Рейтинг: 0 / 0
Разграничение прав
    #35949136
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NahelСоответственно встал вопрос о реализации прав пользователей.
Попробуйте построить модель доступа для решения хотя-бы такой задачки:
Только ввод и корректировка (но не удаление) Накладных для клиентов только типа Крупный магазин.
хинт: надо выделить функции, объекты и классификаторы
...
Рейтинг: 0 / 0
Разграничение прав
    #35949173
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexandrPlus,

авторДа, защищают информацию, но по-разному, в том числе - disabled пункты меню или вообще на показав пункты меню, через которые может быть вызваны интерфейсы, через которые может быть осуществлен доступ к данным.
И выглядит это неплохо
вы в курсе, что тратя рессурсы на интерфейс и пункты меню, чел может присоединиться к БД через Excell, Access и т.д
...
Рейтинг: 0 / 0
Разграничение прав
    #35949179
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
ЗЫ. В 1С нет СУБД, а есть набор файлов dbf

надо записать...
...
Рейтинг: 0 / 0
Разграничение прав
    #35949185
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexandrPlus,
авторесть какая-то "классика" что ли?
есть присказка
"если ты сервер, не суетись под клиентом" (с)

т.е. у современного сервера есть ВСЕ средства по коллективной работе и разграничению прав.
Надо только выбрать вариант (не клиентский), а всё остальное типа меню и т.д. - приложится.
...
Рейтинг: 0 / 0
Разграничение прав
    #35949308
Nahel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123
От Вас слышна только критика, конкретного предложения по мимо того как "===== составь сначала ТЗ, а программирование отдельно." так и не видно, уж если вы так отстаиваете свою точку зрения поделитесь ею в полной мере. Неужели вы думаете если бы я знал реализацию данной задачи/проблемы я бы обратился к форуму?
...
Рейтинг: 0 / 0
Разграничение прав
    #35949347
СергейТТТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nahel,

Лучше бы проверку прав организовать на том же уровне, что и бизнес-логика.
Если бизнес-логика пишется на языке СУБД, то ограничения можно и средствами СУБД сделать.
Если же код - на сервере приложений или клиенте, то выносить проверку прав на уровень СУБД более геморройно - обрабатывать такие исключения сложнее, задавать тоже неудобно будет.

Честно говоря, не приходит в голову пример бизнес-софта, где нужно задавать полномочия уровне записи таблицы, можете привести пример ?

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

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

Первый способ позволяет, имхо, более гибкую систему полномочий построить - проверять больше параметров, чем только тип объекта и операция. Но изменения в приложение более ответственно вносить придется, не забывать проверку перед действиями писать.
...
Рейтинг: 0 / 0
Разграничение прав
    #35949357
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Честно говоря, не приходит в голову пример бизнес-софта, где нужно задавать полномочия уровне записи таблицы, можете привести пример ?

многофирменный учет, расчет з/п, кадры и т.п. Список достаточно велик.
...
Рейтинг: 0 / 0
Разграничение прав
    #35949375
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nahel Petro123
От Вас слышна только критика, конкретного предложения по мимо того как "===== составь сначала ТЗ, а программирование отдельно." так и не видно, уж если вы так отстаиваете свою точку зрения поделитесь ею в полной мере. Неужели вы думаете если бы я знал реализацию данной задачи/проблемы я бы обратился к форуму?
прочитайте ещё раз ответы.
- если Вам для ТЗ надо, то описать права в терминах бизнес-процессов в текстовом виде.
- если для программистов, то средствами СУБД типа:
Код: plaintext
GRANT SELECT TABLE Зарплата TO ROLE РасчётчикЗарплаты
принцип понятен?
Вам первый вариант или второй (на форум сервера) нужен?
...
Рейтинг: 0 / 0
Разграничение прав
    #35949404
Фотография AlexandrPlus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123AlexandrPlus,

авторДа, защищают информацию, но по-разному, в том числе - disabled пункты меню или вообще на показав пункты меню, через которые может быть вызваны интерфейсы, через которые может быть осуществлен доступ к данным.
И выглядит это неплохо
вы в курсе, что тратя рессурсы на интерфейс и пункты меню, чел может присоединиться к БД через Excell, Access и т.д


Так здесь же вроде об этом заметил, что оставить одного-двух пользователей БД, которые будут секретом для пользователей ИС и от явок которых будет коннектится все клиенты. Сетевых польз. не делать польз. БД.

Petro123
т.е. у современного сервера есть ВСЕ средства по коллективной работе и разграничению прав.
Надо только выбрать вариант (не клиентский), а всё остальное типа меню и т.д. - приложится.
"если ты сервер, не суетись под клиентом" (с)
ЗЫ. В 1С нет СУБД, а есть набор файлов dbf

"Как в 1С" я имел ввиду, реализацию доступа к различным документам, справочникам, т.е. есть некий набор прав разрешающий/запрещаяющий действия с документами/справочниками включеные в этот набор, ну а затем этот набор применяется к пользователю.


Хм. Так это один из уровней. ЕЩЁ может быть уровень Бизнес-логики и может быть уровень Интерфейсов (поля ввода-редактирования, меню, кнопки, закладки).
На Oracle Developer это всё очень лихо получается. И это есть в работающих ИС для энергетики, в Монополии, ...

Весь доступ "без суеты" только на сервере БД может быть и неудобным - например, когда нужно будет добавлять права, менять права, ... - нужет админ БД или кто-то умеющий выполнять функции админиа БД.
А так в той же ИС назначается админ ИС и ему программка, где раздаются права на интерфейсы. Программка, которая меняла бы права доступа к объектам сервера, сложнее и запутаннее.

P.S. А что не лишне ещё сформулировать.

Nahel
"Как в 1С" я имел ввиду, реализацию доступа к различным документам, справочникам, т.е. есть некий набор прав разрешающий/запрещаяющий действия с документами/справочниками включеные в этот набор, ну а затем этот набор применяется к пользователю.


Франчайзеры 1С недалеко тут сейчас. Пойду спрошу про справочники и документы. Вообще это вроде "профиля доступа" пользователю ИС?
...
Рейтинг: 0 / 0
Разграничение прав
    #35949458
СергейТТТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господин ПЖ>>Честно говоря, не приходит в голову пример бизнес-софта, где нужно задавать полномочия уровне записи таблицы, можете привести пример ?

многофирменный учет, расчет з/п, кадры и т.п. Список достаточно велик.

администратор полномочий дает полномочия на конкретную строку в таблице БД, по ключу ?
...
Рейтинг: 0 / 0
Разграничение прав
    #35949501
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СергейТТТГосподин ПЖ>>Честно говоря, не приходит в голову пример бизнес-софта, где нужно задавать полномочия уровне записи таблицы, можете привести пример ?

многофирменный учет, расчет з/п, кадры и т.п. Список достаточно велик.

администратор полномочий дает полномочия на конкретную строку в таблице БД, по ключу ?

Допустим я хочу чтобы конкретный расчетчик видел расчет з/п и сопровождающие его документы только по своему подразделению. Тоже самое касаемо отчетности.

Администратор сам руками доступ на строки не раздает, система сама это делает.

ЗЫ Но вероятно мы о разном если понимать термины "полномочия" буквально.
...
Рейтинг: 0 / 0
Разграничение прав
    #35949530
СергейТТТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господин ПЖ

Допустим я хочу чтобы конкретный расчетчик видел расчет з/п и сопровождающие его документы только по своему подразделению. Тоже самое касаемо отчетности.

Администратор сам руками доступ на строки не раздает, система сама это делает.

ЗЫ Но вероятно мы о разном если понимать термины "полномочия" буквально.

т.е. - есть настройка прав для пользователя (подразделение, операции) и она транслируется (автоматом) на уровень СУБД уже по записям таблицы ?
...
Рейтинг: 0 / 0
25 сообщений из 84, страница 1 из 4
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Разграничение прав
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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