Страница 1 из 1
Разделение прав на таблицу
Добавлено: 12 мар 2009, 05:07
Прохожий
Добрый день.
Нужен совет спецов по разграничению прав доступа на таблицы. Пользователю запрещено модифицировать таблицу TRANSP. Т.е. редактировать каталог подвижного состава он не должен. Однако путевые листы вносит. При выборе транспортного средства из путевого листа происходит модификация TRANSP (ATL_LASTUSER, ATL_LASTDATE, ATL_LASTTIME, CPUTLST). Как разрешить пользователю модифицировать только эти поля в таблице TRANSP?
Пробовал выдать права на таблицу "Чтение" и права на поля "Модификация" для вышеперечисленных полей. Не помогло.
Заранее благодарен.
Добавлено: 12 мар 2009, 06:22
Алексей
по идее, это косяк функционала. Для чего модицифировать справочник при выборе из него значений? Пишите в ТП.
Добавлено: 12 мар 2009, 09:38
Прохожий
У сожалению это не косяк функционала, это своеобразная реализация. При создании регистрационного (путевого) листа, необходимо привязать его к ТС (транспортному средству), чтобы потом по этому ТС можно было получить отчетность. Но фишка в том, что ссылка находится не в таблице с путевыми листами и ведет на TRANSP, а таблица TRANSP.CPUTLST ссылается на путевые листы.
Дело даже не в транспорте.
Вообще, интересует принцип. Как при закрытой для всех таблице дать одним людям полные права, а другим модийикацию только определенных полей? При условии, что это нужно реализовать в пределах одной группы (выдать каждому персонально права я могу, но это не рационально, у меня 300 с гаком человек)
Добавлено: 12 мар 2009, 11:39
Darikon
Пробовал выдать права на таблицу "Чтение" и права на поля "Модификация" для вышеперечисленных полей. Не помогло.
не помогло как? дает все поля править или ничего не правится?
у пользователя как права рассчитаны? через группы?
Добавлено: 12 мар 2009, 11:45
Darikon
Вообще как то противоречите себе: "дать одним людям полные права, а другим модийикацию только определенных полей? При условии, что это нужно реализовать в пределах одной группы" имеется в виду : одна группа с полными правами, вторая ограниченная?
Добавлено: 12 мар 2009, 23:20
edward_K
в transp кидиается информация о пробеге - для этого он и модифицируется. Закрыть выборочно поля можно! Я делал, что поле даже менялось, но было закрыто от чтения. Будете баловаться -смотрите отчет по расчитанным правам.
Добавлено: 16 мар 2009, 04:09
Прохожий
Darikon
Нет, противоречия нет, просто неточно выразился. Существует 2 условных пользователя: Чтец и Модификатор. Модификатор должен иметь полные права на TRANSP, Чтец - редактировать только поля ATL_* и CPUTLST. И оба входят в группу UserTables, которая определяет права на таблицы и которая имеет права на TRANSP - только чтение.
Модификатору можно выдать права на таблицу персонально на его логин, не проблема. А вот как разрешить Чтецу модифицировать только определенные поля, если группой ему по умолчанию определено только чтение?
Пробовал дать для группы UserTables полные права на таблицу и правами по полям усечь все поля, кроме необходимых. Цель достигнута, пользователь может привязывать путевые листы, но при попытке модифицировать другое поле таблицы TRANSP, выдается очень некрасивое сообщение об ошибке внутреннего интерфейса доступа к БД. Вот и думаю, может есть более изящный способ.
Добавлено: 16 мар 2009, 09:48
Darikon
для группы UserTables - только чтение(в ней к данной табле доступ на чтение).
для Модификаторов задать еще одну группу на полный доступ к табл
для Чтецов также задать еще одну группу на частичный доступ к табл
т.о. у всех будет две группы, одна по всем таблицам (в ней к данной табле доступ на чтение), вторая на доступ по полям к одной табл - полный или частичный доступ. Права будут суммироваться.
а уж если будут пытаться править не разрешенные поля - тут уж ничего не сделать с сообщениями - мы же не настройкой запрещаем...