|
Разграничение прав
|
|||
---|---|---|---|
#18+
Всем привет! Делаю систему соглосования ТЗ, столкнулся с вопросом о разграничение прав пользователей. В силу неуверенного знания MS SQL, решил это все реализовать на клиенте, т.е. как у 1С. Только как это лучше сделать затрудняюсь. Может есть статьи о реализации данного вопроса?? Спасибо за рание. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 09:04 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
что есть "разграничение прав"? - это право на использование того или иного объекта БД (смотрим доку по БД) или право на определенные операции с определенной записью таблицы БД (читаем доки по RLS) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 09:10 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
Toshчто есть "разграничение прав"? - это право на использование того или иного объекта БД (смотрим доку по БД) или право на определенные операции с определенной записью таблицы БД (читаем доки по RLS) право на определенные операции с определенной записью таблицы БД. а что такое RLS? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 09:13 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
Nahel, Row Level Security или разграничение прав на уровне записи с 1С не работал - не знаю как там это все реализовано, но вообще - это достаточно гемморойная штука ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 09:24 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
NahelДелаю систему соглосования ТЗ В силу неуверенного знания MS SQL, решил это все реализовать на клиенте, т.е. как у 1С. оригинально. Вы делаете ТЗ и одновременно программист, или ставите задачи "как в 1С" другим, потому что "не знаете"? ЗЫ. В 1С нет СУБД, а есть набор файлов dbf ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 09:38 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
Одна из top-тем при разработке ИС! Мне нравится то, что исходит от Oracle-истов и систем на Oracle типа Монополия. Права на интерфейсы (на поля, на пункты меню, ...), права на выполнение какие-то процедур по обработке и преобразования данных в БД, права вообще на объекты БД. Что согласуется с концепцией максимального отделения друг от друга ИНТЕРФЕЙСОВ, БИЗНЕС-ЛОГИКИ, ДАННЫХ. Права на интерфейсы, права на осуществление действий по бизнес-логике, права на вообще объекты БД. Соответственно эти права давать компьютерам, сетевым польз., польз. сервера БД. Вводит специальных пользователей ИС наверно лишнее. Также для простоты объединить сет. польз. и польз. БД, но создав из них сет. раб. группы, которые соотв. ролям БД. Компьютерам не давать прав вообще. Какие контр-мнения такому подходу? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 10:04 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
Tosh вот вот вот последняя ссылочка вроде то что надо Petro123NahelДелаю систему соглосования ТЗ В силу неуверенного знания MS SQL, решил это все реализовать на клиенте, т.е. как у 1С. оригинально. Вы делаете ТЗ и одновременно программист, или ставите задачи "как в 1С" другим, потому что "не знаете"? ЗЫ. В 1С нет СУБД, а есть набор файлов dbf ну есть 1с и под mssql так упорядочу свои мысли ) 1. У нас в организации для того чтобы реализовать требование пользователя (елси оно объемное) создается ТехЗадание на данное требование/заявку 2. ТехЗадание согласовывается несколькими людьми 3. Если ТЗ успешно согласовано то оно передается на разработку Это так в краце, т.е. урезаный документооборот На счет разграничения прав. "Как в 1С" я имел ввиду, реализацию доступа к различным документам, справочникам, т.е. есть некий набор прав разрешающий/запрещаяющий действия с документами/справочниками включеные в этот набор, ну а затем этот набор применяется к пользователю. Ранее эту задачу я реализовал на Lotus Domino переделав часть системы Босс-Референт, сейчас хочу перетащить это дело на MS SQL а клиента написать на MSVC++. Соответственно встал вопрос о реализации прав пользователей. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 10:06 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
AlexandrPlusОдна из top-тем при разработке ИС! Мне нравится то, что исходит от Oracle-истов и систем на Oracle типа Монополия. Права на интерфейсы (на поля, на пункты меню, ...), права на выполнение какие-то процедур по обработке и преобразования данных в БД, права вообще на объекты БД. Что согласуется с концепцией максимального отделения друг от друга ИНТЕРФЕЙСОВ, БИЗНЕС-ЛОГИКИ, ДАННЫХ. Права на интерфейсы, права на осуществление действий по бизнес-логике, права на вообще объекты БД. Соответственно эти права давать компьютерам, сетевым польз., польз. сервера БД. Вводит специальных пользователей ИС наверно лишнее. Также для простоты объединить сет. польз. и польз. БД, но создав из них сет. раб. группы, которые соотв. ролям БД. Компьютерам не давать прав вообще. Какие контр-мнения такому подходу? да скорее всего права на интерфейс меня интересует ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 10:09 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
Nahel да скорее всего права на интерфейс меня интересует Тогда, если у ИС не будет развития или включения в какую-то ИС, то для простоты сделать пользователей ИС. А всем сетев. польз. закрыть доступ к БД (кроме админов и разрабов само собой), а точнее оставить одного-двух польз. БД, имена и пароли (явки) которых будут секретны. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 10:39 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
Nahel ну есть 1с и под mssql ===== видишь суслика?... а он там есть :) 1. У нас в организации для того чтобы реализовать требование пользователя (елси оно объемное) создается ТехЗадание на данное требование/заявку 2. ТехЗадание согласовывается несколькими людьми 3. Если ТЗ успешно согласовано то оно передается на разработку === ну и какое отношение "требование пользователя" имеет к архитектуре построения прав? Там пишется что "Отдел Иван Иваныча не должен видеть зарплату Иван Петровича" Ранее эту задачу я реализовал на Lotus Domino сейчас хочу перетащить это дело на MS SQL = в лотусе нет СУБД. Сравнил ежа и носрога. а клиента написать на MSVC++. ===== составь сначала ТЗ, а программирование отдельно. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 10:41 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
AlexandrPlusКакие контр-мнения такому подходу? нет такого подхода. Защищают данные, а не пункты меню ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 10:43 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
Petro123AlexandrPlusКакие контр-мнения такому подходу? нет такого подхода. есть какая-то "классика" что ли? Petro123 Защищают данные, а не пункты меню Да, защищают информацию, но по-разному, в том числе - disabled пункты меню или вообще на показав пункты меню, через которые может быть вызваны интерфейсы, через которые может быть осуществлен доступ к данным. И выглядит это неплохо. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 10:56 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
NahelСоответственно встал вопрос о реализации прав пользователей. Попробуйте построить модель доступа для решения хотя-бы такой задачки: Только ввод и корректировка (но не удаление) Накладных для клиентов только типа Крупный магазин. хинт: надо выделить функции, объекты и классификаторы ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 11:12 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
AlexandrPlus, авторДа, защищают информацию, но по-разному, в том числе - disabled пункты меню или вообще на показав пункты меню, через которые может быть вызваны интерфейсы, через которые может быть осуществлен доступ к данным. И выглядит это неплохо вы в курсе, что тратя рессурсы на интерфейс и пункты меню, чел может присоединиться к БД через Excell, Access и т.д ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 11:21 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
Petro123 ЗЫ. В 1С нет СУБД, а есть набор файлов dbf надо записать... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 11:22 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
AlexandrPlus, авторесть какая-то "классика" что ли? есть присказка "если ты сервер, не суетись под клиентом" (с) т.е. у современного сервера есть ВСЕ средства по коллективной работе и разграничению прав. Надо только выбрать вариант (не клиентский), а всё остальное типа меню и т.д. - приложится. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 11:24 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
Petro123 От Вас слышна только критика, конкретного предложения по мимо того как "===== составь сначала ТЗ, а программирование отдельно." так и не видно, уж если вы так отстаиваете свою точку зрения поделитесь ею в полной мере. Неужели вы думаете если бы я знал реализацию данной задачи/проблемы я бы обратился к форуму? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 11:59 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
Nahel, Лучше бы проверку прав организовать на том же уровне, что и бизнес-логика. Если бизнес-логика пишется на языке СУБД, то ограничения можно и средствами СУБД сделать. Если же код - на сервере приложений или клиенте, то выносить проверку прав на уровень СУБД более геморройно - обрабатывать такие исключения сложнее, задавать тоже неудобно будет. Честно говоря, не приходит в голову пример бизнес-софта, где нужно задавать полномочия уровне записи таблицы, можете привести пример ? Вообще, проверки прав можно по разному реализовать - Программа проверяет значение полномочий перед выполнением действия и если их нет, ругается. - Другой подход - это когда программа делает что-то, и ей возвращается исключение, если на это нет полномочий. Второй способ вроде как надежней выглядит, но модуль проверки полномочий тут должен понимать все типы возможных операций с данными - если это укладывается в термины "добавить/изменить/удалить объект" или "добавить/изменить/удалить запись", то вполне реализуемо. Первый способ позволяет, имхо, более гибкую систему полномочий построить - проверять больше параметров, чем только тип объекта и операция. Но изменения в приложение более ответственно вносить придется, не забывать проверку перед действиями писать. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 12:06 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
>>Честно говоря, не приходит в голову пример бизнес-софта, где нужно задавать полномочия уровне записи таблицы, можете привести пример ? многофирменный учет, расчет з/п, кадры и т.п. Список достаточно велик. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 12:09 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
Nahel Petro123 От Вас слышна только критика, конкретного предложения по мимо того как "===== составь сначала ТЗ, а программирование отдельно." так и не видно, уж если вы так отстаиваете свою точку зрения поделитесь ею в полной мере. Неужели вы думаете если бы я знал реализацию данной задачи/проблемы я бы обратился к форуму? прочитайте ещё раз ответы. - если Вам для ТЗ надо, то описать права в терминах бизнес-процессов в текстовом виде. - если для программистов, то средствами СУБД типа: Код: plaintext
Вам первый вариант или второй (на форум сервера) нужен? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 12:15 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
Petro123AlexandrPlus, авторДа, защищают информацию, но по-разному, в том числе - disabled пункты меню или вообще на показав пункты меню, через которые может быть вызваны интерфейсы, через которые может быть осуществлен доступ к данным. И выглядит это неплохо вы в курсе, что тратя рессурсы на интерфейс и пункты меню, чел может присоединиться к БД через Excell, Access и т.д Так здесь же вроде об этом заметил, что оставить одного-двух пользователей БД, которые будут секретом для пользователей ИС и от явок которых будет коннектится все клиенты. Сетевых польз. не делать польз. БД. Petro123 т.е. у современного сервера есть ВСЕ средства по коллективной работе и разграничению прав. Надо только выбрать вариант (не клиентский), а всё остальное типа меню и т.д. - приложится. "если ты сервер, не суетись под клиентом" (с) ЗЫ. В 1С нет СУБД, а есть набор файлов dbf "Как в 1С" я имел ввиду, реализацию доступа к различным документам, справочникам, т.е. есть некий набор прав разрешающий/запрещаяющий действия с документами/справочниками включеные в этот набор, ну а затем этот набор применяется к пользователю. Хм. Так это один из уровней. ЕЩЁ может быть уровень Бизнес-логики и может быть уровень Интерфейсов (поля ввода-редактирования, меню, кнопки, закладки). На Oracle Developer это всё очень лихо получается. И это есть в работающих ИС для энергетики, в Монополии, ... Весь доступ "без суеты" только на сервере БД может быть и неудобным - например, когда нужно будет добавлять права, менять права, ... - нужет админ БД или кто-то умеющий выполнять функции админиа БД. А так в той же ИС назначается админ ИС и ему программка, где раздаются права на интерфейсы. Программка, которая меняла бы права доступа к объектам сервера, сложнее и запутаннее. P.S. А что не лишне ещё сформулировать. Nahel "Как в 1С" я имел ввиду, реализацию доступа к различным документам, справочникам, т.е. есть некий набор прав разрешающий/запрещаяющий действия с документами/справочниками включеные в этот набор, ну а затем этот набор применяется к пользователю. Франчайзеры 1С недалеко тут сейчас. Пойду спрошу про справочники и документы. Вообще это вроде "профиля доступа" пользователю ИС? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 12:21 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
Господин ПЖ>>Честно говоря, не приходит в голову пример бизнес-софта, где нужно задавать полномочия уровне записи таблицы, можете привести пример ? многофирменный учет, расчет з/п, кадры и т.п. Список достаточно велик. администратор полномочий дает полномочия на конкретную строку в таблице БД, по ключу ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 12:34 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
СергейТТТГосподин ПЖ>>Честно говоря, не приходит в голову пример бизнес-софта, где нужно задавать полномочия уровне записи таблицы, можете привести пример ? многофирменный учет, расчет з/п, кадры и т.п. Список достаточно велик. администратор полномочий дает полномочия на конкретную строку в таблице БД, по ключу ? Допустим я хочу чтобы конкретный расчетчик видел расчет з/п и сопровождающие его документы только по своему подразделению. Тоже самое касаемо отчетности. Администратор сам руками доступ на строки не раздает, система сама это делает. ЗЫ Но вероятно мы о разном если понимать термины "полномочия" буквально. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 12:45 |
|
Разграничение прав
|
|||
---|---|---|---|
#18+
Господин ПЖ Допустим я хочу чтобы конкретный расчетчик видел расчет з/п и сопровождающие его документы только по своему подразделению. Тоже самое касаемо отчетности. Администратор сам руками доступ на строки не раздает, система сама это делает. ЗЫ Но вероятно мы о разном если понимать термины "полномочия" буквально. т.е. - есть настройка прав для пользователя (подразделение, операции) и она транслируется (автоматом) на уровень СУБД уже по записям таблицы ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2009, 12:51 |
|
|
start [/forum/topic.php?fid=33&msg=35949357&tid=1548555]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 172ms |
0 / 0 |