Хитрый запрет на доступ к таблицам

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

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

Ответить
Sheinina
Местный житель
Сообщения: 366
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Хитрый запрет на доступ к таблицам

Сообщение Sheinina »

Задачу нам тут кассир наша задала: не хочу, говорит, чтобы кто-нибудь мог править создаваемые мной приходные-расходные кассовые ордера и проводки к ним. Разграничить этот доступ на уровне групп дескрипторов не получается. Делаем так:
на таблицы plpor и oborot даем всем пользователям право на чтение, право на остальные действия даем кассиру по условию descr='kassa', а остальным пользователям - по условию descr<>'kassa'. Однако при этом ни кассир, ни другие пользователи вообще не могут вносить изменения в таблицу plpor. Очевидно, что-то мы не учли, но вот что - понять не можем
oiko
Местный житель
Сообщения: 419
Зарегистрирован: 29 мар 2005, 17:49

Сообщение oiko »

на plpor забыли системный код документа а на проводки может быть по-сложнее, надо экспериментировать - может проще конфигурацией фейса запретить остальным пользователям доступ к полям ордеров.
Sheinina
Местный житель
Сообщения: 366
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение Sheinina »

Системный код документа в plpor'е на самом деле пофигу, так как кассир все равно документов с другим системным кодом не делает, и не имеет к ним доступа по ограничениям на меню и доступ к документам через штатные настройки модулей ФРО и Касса. Закрывать конфигуратором доступ к полям тоже нельзя, т.к. существует несколько касс, к которым кассир доступа не имеет, с ними работают другие сотрудники.
Мы встали в тупик еще и потому, что нечто подобное сделано у нас для таблицы communications. Всем пользователям открыт доступ на чтение ко всем телефонам, телефонисту (отвечающему за внутреннюю и мобильную связь) - полный к служебным мобильным и внутренним телефонам, а сотрудникам кадровой службы - полный к домашним и личным мобильным. Работает как часы. Почему то же самое не прокатило с plpor и oborot - непонятно. Разница, по большому счету, только в том, что в фильтрах на телефоны идет анализ по ссылке на тип телефона, а в plpor и oborot - по дескриптору.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

есть еще права по статусу документа и меню.
Практически везде - настройка - доступ к документам.
А вы пробовали через протект так понимаю? попробуйте даь полные права + права по условию (но tidkgal наверное, а не descr)
Sheinina
Местный житель
Сообщения: 366
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение Sheinina »

edward_K, через все предлагаемые Вами способы тоже не получится. У нас весьма сложная структура бухгалтерии, штатным функционалам Галки не обойтись (если могли бы, стали бы мы с протектом мучиться). Мы действительно пробовали через протект, по tidk (и уж тем более, по tidkgal) не пройдет, потому как тут разговор именно на принцЫп: "МОИ документы и проводки к ним пусть НИКТО не трогает. Я сделала - я отвечаю!". Когда она уйдет в отпуск (в отгул, на больничный), в ее кассах будет работать другой сотрудник, так что только дескриптор (к сожалению). Да, если мы снимаем ограничения на PlPor, а оставляем только на oborot - все замечательно работает :-?
Начинающий путь
Местный житель
Сообщения: 258
Зарегистрирован: 13 апр 2006, 11:57
Откуда: Бегущий к Галактике

Re: Хитрый запрет на доступ к таблицам

Сообщение Начинающий путь »

Sheinina писал(а):Задачу нам тут кассир наша задала: не хочу, говорит, чтобы кто-нибудь мог править создаваемые мной приходные-расходные кассовые ордера и проводки к ним. Разграничить этот доступ на уровне групп дескрипторов не получается. Делаем так:
на таблицы plpor и oborot даем всем пользователям право на чтение, право на остальные действия даем кассиру по условию descr='kassa', а остальным пользователям - по условию descr<>'kassa'. Однако при этом ни кассир, ни другие пользователи вообще не могут вносить изменения в таблицу plpor. Очевидно, что-то мы не учли, но вот что - понять не можем
прежде всего у нас 2 группы пользователей

1. пишем ДВА условия на таблицу Plpor-группы записей (фильтры)
a. ИМЯ ФИЛЬТРА НЕ КАССИР - ПРАВА R---
условие DESCR <> 'КАССА'
b. ИМЯ ФИЛЬТРА КАССИР - ПРАВА RIUD
условие DESCR = 'КАССА'

2. у тех и других групп убираем таблицу plpor из закладки доступ к таблицам (она там не должна светиться)


3. Добавляем к каждой группе в закладке прав на условия соответствующие права

вроде должно пройти
Sheinina
Местный житель
Сообщения: 366
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение Sheinina »

Именно так мы и сделали. Так вот - не проходит. Причем не проходит конкретно для plpor, для таблицы oborot все работает
Начинающий путь
Местный житель
Сообщения: 258
Зарегистрирован: 13 апр 2006, 11:57
Откуда: Бегущий к Галактике

Сообщение Начинающий путь »

гляньте плиз, то будет при смене условий = на <> и наоборот или смене прав R--- на RIUD и на оборот.

Лучше наверно так: DESCR <> 'КАССА' - RIUD
DESCR = 'КАССА' - R----

Далее снова проверяем. Если все редактируется под любым дескриптором, то не проходит знак равенства. Пробуем скопировать строчку 'КАССА' из условий oborot'а.

Еще лучше залезте в таблицу plpor и скопируйте условие от туда.
Ответить