Разделение прав на таблицу
Модераторы: m0p3e, edward_K, Модераторы
-
- Постоянный обитатель
- Сообщения: 134
- Зарегистрирован: 23 мар 2007, 05:38
- Откуда: Дальний Восток, Хабаровск
- Контактная информация:
Разделение прав на таблицу
Добрый день.
Нужен совет спецов по разграничению прав доступа на таблицы. Пользователю запрещено модифицировать таблицу TRANSP. Т.е. редактировать каталог подвижного состава он не должен. Однако путевые листы вносит. При выборе транспортного средства из путевого листа происходит модификация TRANSP (ATL_LASTUSER, ATL_LASTDATE, ATL_LASTTIME, CPUTLST). Как разрешить пользователю модифицировать только эти поля в таблице TRANSP?
Пробовал выдать права на таблицу "Чтение" и права на поля "Модификация" для вышеперечисленных полей. Не помогло.
Заранее благодарен.
Нужен совет спецов по разграничению прав доступа на таблицы. Пользователю запрещено модифицировать таблицу TRANSP. Т.е. редактировать каталог подвижного состава он не должен. Однако путевые листы вносит. При выборе транспортного средства из путевого листа происходит модификация TRANSP (ATL_LASTUSER, ATL_LASTDATE, ATL_LASTTIME, CPUTLST). Как разрешить пользователю модифицировать только эти поля в таблице TRANSP?
Пробовал выдать права на таблицу "Чтение" и права на поля "Модификация" для вышеперечисленных полей. Не помогло.
Заранее благодарен.
-
- Постоянный обитатель
- Сообщения: 134
- Зарегистрирован: 23 мар 2007, 05:38
- Откуда: Дальний Восток, Хабаровск
- Контактная информация:
У сожалению это не косяк функционала, это своеобразная реализация. При создании регистрационного (путевого) листа, необходимо привязать его к ТС (транспортному средству), чтобы потом по этому ТС можно было получить отчетность. Но фишка в том, что ссылка находится не в таблице с путевыми листами и ведет на TRANSP, а таблица TRANSP.CPUTLST ссылается на путевые листы.
Дело даже не в транспорте.
Вообще, интересует принцип. Как при закрытой для всех таблице дать одним людям полные права, а другим модийикацию только определенных полей? При условии, что это нужно реализовать в пределах одной группы (выдать каждому персонально права я могу, но это не рационально, у меня 300 с гаком человек)
Дело даже не в транспорте.
Вообще, интересует принцип. Как при закрытой для всех таблице дать одним людям полные права, а другим модийикацию только определенных полей? При условии, что это нужно реализовать в пределах одной группы (выдать каждому персонально права я могу, но это не рационально, у меня 300 с гаком человек)
Галактика 8.10, Oracle 10g patch 10.2.0.4
-
- Постоянный обитатель
- Сообщения: 134
- Зарегистрирован: 23 мар 2007, 05:38
- Откуда: Дальний Восток, Хабаровск
- Контактная информация:
Darikon
Нет, противоречия нет, просто неточно выразился. Существует 2 условных пользователя: Чтец и Модификатор. Модификатор должен иметь полные права на TRANSP, Чтец - редактировать только поля ATL_* и CPUTLST. И оба входят в группу UserTables, которая определяет права на таблицы и которая имеет права на TRANSP - только чтение.
Модификатору можно выдать права на таблицу персонально на его логин, не проблема. А вот как разрешить Чтецу модифицировать только определенные поля, если группой ему по умолчанию определено только чтение?
Пробовал дать для группы UserTables полные права на таблицу и правами по полям усечь все поля, кроме необходимых. Цель достигнута, пользователь может привязывать путевые листы, но при попытке модифицировать другое поле таблицы TRANSP, выдается очень некрасивое сообщение об ошибке внутреннего интерфейса доступа к БД. Вот и думаю, может есть более изящный способ.
Нет, противоречия нет, просто неточно выразился. Существует 2 условных пользователя: Чтец и Модификатор. Модификатор должен иметь полные права на TRANSP, Чтец - редактировать только поля ATL_* и CPUTLST. И оба входят в группу UserTables, которая определяет права на таблицы и которая имеет права на TRANSP - только чтение.
Модификатору можно выдать права на таблицу персонально на его логин, не проблема. А вот как разрешить Чтецу модифицировать только определенные поля, если группой ему по умолчанию определено только чтение?
Пробовал дать для группы UserTables полные права на таблицу и правами по полям усечь все поля, кроме необходимых. Цель достигнута, пользователь может привязывать путевые листы, но при попытке модифицировать другое поле таблицы TRANSP, выдается очень некрасивое сообщение об ошибке внутреннего интерфейса доступа к БД. Вот и думаю, может есть более изящный способ.
Галактика 8.10, Oracle 10g patch 10.2.0.4
-
- Постоянный обитатель
- Сообщения: 188
- Зарегистрирован: 17 июн 2008, 17:07
- Откуда: Москва
- Контактная информация:
для группы UserTables - только чтение(в ней к данной табле доступ на чтение).
для Модификаторов задать еще одну группу на полный доступ к табл
для Чтецов также задать еще одну группу на частичный доступ к табл
т.о. у всех будет две группы, одна по всем таблицам (в ней к данной табле доступ на чтение), вторая на доступ по полям к одной табл - полный или частичный доступ. Права будут суммироваться.
а уж если будут пытаться править не разрешенные поля - тут уж ничего не сделать с сообщениями - мы же не настройкой запрещаем...
для Модификаторов задать еще одну группу на полный доступ к табл
для Чтецов также задать еще одну группу на частичный доступ к табл
т.о. у всех будет две группы, одна по всем таблицам (в ней к данной табле доступ на чтение), вторая на доступ по полям к одной табл - полный или частичный доступ. Права будут суммироваться.
а уж если будут пытаться править не разрешенные поля - тут уж ничего не сделать с сообщениями - мы же не настройкой запрещаем...