запрет на доступ

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

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

J1nn
Сообщения: 8
Зарегистрирован: 17 июн 2008, 11:24

запрет на доступ

Сообщение J1nn »

нужно запретить доступ к информации по 50 счету ,может кто знает как? подскажите:) заранее спасибо
J1nn
Сообщения: 8
Зарегистрирован: 17 июн 2008, 11:24

Сообщение J1nn »

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

Сообщение edward_K »

вы просто условие не так писали. поля в oborot какие писали?
я даже одно поле закрывал протектом и ниче - все работало
Опять же 3 правила
1. права суммируются
2. пересчитывать права лучше когда пользователя нет в системе
3. права грузятся только в момент старта галки.
J1nn
Сообщения: 8
Зарегистрирован: 17 июн 2008, 11:24

Сообщение J1nn »

да, перекрывалось правами группы похоже..сейчас более-менее все заработало:)
условия фильтра были на таблицу oborot :
sheto<>'350' or schetk<>'350'
теперь мучаюсь с тем чтоб некоторые документы по счету все-таки можно было просматривать..к чему можно тут прицепиться?
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

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

oborot.tidk = тип док-та, к которому привязана проводка
J1nn
Сообщения: 8
Зарегистрирован: 17 июн 2008, 11:24

Сообщение J1nn »

что дает oborot.tidk?
как с ним работать? :eek:
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

Тут небольшой кусочек тока...


if getfirst katdoc where ((oborot.tidkgal==katdoc.tidkgal))=tsok
if getfirst usersdoc where ((oborot.tidk==usersdoc.TIPUSERS))=tsok {}

nazvdoc:='unknown';
nodoc :='unknown';
shname :='unknown';
case oborot.tidkgal of
110,101,201 :{
if getfirst katsopr where ((oborot.csoprdoc==katsopr.nrec))=tsok
{
nazvdoc:='акт №'+katsopr.nsopr+' от '+katsopr.dsopr;
nodoc :=katsopr.nsopr;
shname :='акт' ;

}
}
10 :{
if getfirst plpor where ((oborot.csoprdoc==plpor.nrec))=tsok
{
nazvdoc:='Бухгалтерская справка/'+usersdoc.NAME+' '+plpor.datob+' '+plpor.nodok ;
nodoc :=plpor.nodok;
shname :='бух справка' ;
}
}
1 :{
if getfirst plpor where ((oborot.csoprdoc==plpor.nrec))=tsok
{
nazvdoc:='собственная платежка/'+usersdoc.NAME+' '+plpor.datob+' '+plpor.nodok ;
nodoc :=plpor.nodok;
shname :='платежка' ;
}
}
end;
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

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

J1nn писал(а):что дает oborot.tidk?
как с ним работать? :eek:
По нему видно, к какому типу документов привязана проводка. 211 - акт на продажу, 600 - накладная на вн. перемещение и т.п.
J1nn
Сообщения: 8
Зарегистрирован: 17 июн 2008, 11:24

Сообщение J1nn »

спасибо. еще вопрос один.
мне надо закрыть счет 50.1 сам счет я закрываю без проблем,в саппорте-группа записей(фильтры), но
когда добавляю в условии поле subosschet<>01 ,то исчезают
все проводки с субсчетами 01, причем, я уже даже в секцию ИЛИ ставил это условие,что заведомо неправильно, так ради эксперемента.везде неправильно:)
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

Ты хочешь чтобы юзверь видел все проводки, когда в связке
<счет дебет, субсчет дебет> или <счет кредит, субсчет кредит> не упоминается '50' '01' ?
Сия вещь, по всей видимости, невозможна. Посколько права в галактике суммируются к основным при задании фильтров (групп записей). А здесь напрашивается условие типа :

if (oborot.scheto='350' and oborot.subossch='01')
or (oborot.schetk='350' and oborot.subschk='01')
{
<снимаем права на чтение>
}

нельзя задать основные права на таблицу R-I-M-D и по условию снять их...
Хотя может я и не прав, но я дак так себе это представляю )
J1nn
Сообщения: 8
Зарегистрирован: 17 июн 2008, 11:24

Сообщение J1nn »

Den писал(а):Ты хочешь чтобы юзверь видел все проводки, когда в связке
<счет дебет, субсчет дебет> или <счет кредит, субсчет кредит> не упоминается '50' '01' ?
да. сейчас я сделал следующие.
юзеру из основных прав убрал таблицу oborot вообще.
и по условию ее добавляю обратно,но уже чтоб он не видел счета:
if (oborot.scheto<>'350' )
or (oborot.schetk<>'350')
{
<даю права RIUD>
}
таким образом все работает ,счет становится недоступным. но стоит мне добавлять в условие субсчета, условие перестает корректно работать.
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

J1nn писал(а): да. сейчас я сделал следующие.
юзеру из основных прав убрал таблицу oborot вообще.
и по условию ее добавляю обратно,но уже чтоб он не видел счета:
if (oborot.scheto<>'350' )
or (oborot.schetk<>'350')
{
<даю права RIUD>
}
таким образом все работает ,счет становится недоступным. но стоит мне добавлять в условие субсчета, условие перестает корректно работать.
Странно немного..по идее при таком условии все должно быть видно. Например проводка Д360 К350 быдет видна )
J1nn
Сообщения: 8
Зарегистрирован: 17 июн 2008, 11:24

Сообщение J1nn »

хм.. а как запретить субсчет-то?
когда в правах доступа, в условие для таблицы Oborot, ставлю
sсheto<>350 and
subosschet<>01
(таблица Oborot доступна с правами RIUD, для всех счетов кроме 50.01,
по моей мысли должно быть так:))
то фильтрует все счета 50 и все субсчета 01, то есть 76.01 тоже попадет в фильтрацию, а вот 76.03 будет в книге проводок
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

надо not (sheto=350 and subossch=01). иначе вы закрываете все 01 сбусчета.
J1nn
Сообщения: 8
Зарегистрирован: 17 июн 2008, 11:24

Сообщение J1nn »

я понимаю что условие вида
not (sheto=350 and subossch=01)
логически верное, но как его реализовать инструментами Support-группа записей(фильтры)? я же там могу выбрать только поле таблицы и его значение:)
Ответить