Разделение прав на таблицу

Администрирование баз данных (Pervasive.SQL, MS SQL, Oracle, утилита Support)

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Прохожий
Постоянный обитатель
Сообщения: 134
Зарегистрирован: 23 мар 2007, 05:38
Откуда: Дальний Восток, Хабаровск
Контактная информация:

Разделение прав на таблицу

Сообщение Прохожий »

Добрый день.

Нужен совет спецов по разграничению прав доступа на таблицы. Пользователю запрещено модифицировать таблицу TRANSP. Т.е. редактировать каталог подвижного состава он не должен. Однако путевые листы вносит. При выборе транспортного средства из путевого листа происходит модификация TRANSP (ATL_LASTUSER, ATL_LASTDATE, ATL_LASTTIME, CPUTLST). Как разрешить пользователю модифицировать только эти поля в таблице TRANSP?

Пробовал выдать права на таблицу "Чтение" и права на поля "Модификация" для вышеперечисленных полей. Не помогло.

Заранее благодарен.
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

по идее, это косяк функционала. Для чего модицифировать справочник при выборе из него значений? Пишите в ТП.
Прохожий
Постоянный обитатель
Сообщения: 134
Зарегистрирован: 23 мар 2007, 05:38
Откуда: Дальний Восток, Хабаровск
Контактная информация:

Сообщение Прохожий »

У сожалению это не косяк функционала, это своеобразная реализация. При создании регистрационного (путевого) листа, необходимо привязать его к ТС (транспортному средству), чтобы потом по этому ТС можно было получить отчетность. Но фишка в том, что ссылка находится не в таблице с путевыми листами и ведет на TRANSP, а таблица TRANSP.CPUTLST ссылается на путевые листы.

Дело даже не в транспорте.

Вообще, интересует принцип. Как при закрытой для всех таблице дать одним людям полные права, а другим модийикацию только определенных полей? При условии, что это нужно реализовать в пределах одной группы (выдать каждому персонально права я могу, но это не рационально, у меня 300 с гаком человек)
Галактика 8.10, Oracle 10g patch 10.2.0.4
Darikon
Постоянный обитатель
Сообщения: 188
Зарегистрирован: 17 июн 2008, 17:07
Откуда: Москва
Контактная информация:

Сообщение Darikon »

Пробовал выдать права на таблицу "Чтение" и права на поля "Модификация" для вышеперечисленных полей. Не помогло.
не помогло как? дает все поля править или ничего не правится?
у пользователя как права рассчитаны? через группы?
Darikon
Постоянный обитатель
Сообщения: 188
Зарегистрирован: 17 июн 2008, 17:07
Откуда: Москва
Контактная информация:

Сообщение Darikon »

Вообще как то противоречите себе: "дать одним людям полные права, а другим модийикацию только определенных полей? При условии, что это нужно реализовать в пределах одной группы" имеется в виду : одна группа с полными правами, вторая ограниченная?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

в transp кидиается информация о пробеге - для этого он и модифицируется. Закрыть выборочно поля можно! Я делал, что поле даже менялось, но было закрыто от чтения. Будете баловаться -смотрите отчет по расчитанным правам.
Прохожий
Постоянный обитатель
Сообщения: 134
Зарегистрирован: 23 мар 2007, 05:38
Откуда: Дальний Восток, Хабаровск
Контактная информация:

Сообщение Прохожий »

Darikon
Нет, противоречия нет, просто неточно выразился. Существует 2 условных пользователя: Чтец и Модификатор. Модификатор должен иметь полные права на TRANSP, Чтец - редактировать только поля ATL_* и CPUTLST. И оба входят в группу UserTables, которая определяет права на таблицы и которая имеет права на TRANSP - только чтение.

Модификатору можно выдать права на таблицу персонально на его логин, не проблема. А вот как разрешить Чтецу модифицировать только определенные поля, если группой ему по умолчанию определено только чтение?

Пробовал дать для группы UserTables полные права на таблицу и правами по полям усечь все поля, кроме необходимых. Цель достигнута, пользователь может привязывать путевые листы, но при попытке модифицировать другое поле таблицы TRANSP, выдается очень некрасивое сообщение об ошибке внутреннего интерфейса доступа к БД. Вот и думаю, может есть более изящный способ.
Галактика 8.10, Oracle 10g patch 10.2.0.4
Darikon
Постоянный обитатель
Сообщения: 188
Зарегистрирован: 17 июн 2008, 17:07
Откуда: Москва
Контактная информация:

Сообщение Darikon »

для группы UserTables - только чтение(в ней к данной табле доступ на чтение).
для Модификаторов задать еще одну группу на полный доступ к табл
для Чтецов также задать еще одну группу на частичный доступ к табл
т.о. у всех будет две группы, одна по всем таблицам (в ней к данной табле доступ на чтение), вторая на доступ по полям к одной табл - полный или частичный доступ. Права будут суммироваться.
а уж если будут пытаться править не разрешенные поля - тут уж ничего не сделать с сообщениями - мы же не настройкой запрещаем...
Ответить