раздача прав на запись таблицы Account

Коллеги мне необходимо запретить конкретным пользователям операцию изменения отдельных Контрагентов , делаю это скриптом раздачи прав

iNSERT INTO SysAccountRight([Id], [RecordId], [SysAdminUnitId], [Operation], [RightLevel],SourceId)
SELECT newid(), '5BF886F2-169D-4EFF-801A-4068DA93F59F', 'ABD2896B-5212-4A7E-B371-5BE17F3DAF30', 0, 1,'{4220CFBA-0514-44CE-ADD0-109B54B52084}'

iNSERT INTO SysAccountRight([Id], [RecordId], [SysAdminUnitId], [Operation], [RightLevel],SourceId)
SELECT newid(), '5BF886F2-169D-4EFF-801A-4068DA93F59F', 'ABD2896B-5212-4A7E-B371-5BE17F3DAF30', 1, 0,'{4220CFBA-0514-44CE-ADD0-109B54B52084}'

после отработки скрипта новые записи в таблице SysAccountRight появляются , но когда выполняю изменение под этим пользователем система позволяет изменить.
Можете подсказать что я делаю не так?

Нравится

13 комментариев

Само администрирование по записям включено на объекте "Контрагент"?
upd. Стоп. Натупил)
Operation:

  1. 0-чтение
  2. 1-изменение
  3. 2-удаление

RightLevel:

  1. 0-разрешено
  2. 1-разрешено с делегированием

Вы скриптом раздаёте права, а не запрещаете. Чтобы запретить, надо просто ничего не добавлять)

Коллеги, здравствуйте!

Немного о правах:
1) Права действительно забираются такими скриптами.
Разгадка почему в результате запроса:

select * from SysEntitySchemaRecOprRightLvl

2) У объекта Account должны быть включены запрещающие права (но я бы этого не рекомендовал делать)
3) Значение поля Position - играет роль:
если пользователь входит в роль, которой "Разрешено" и Position этой записи меньше Position записи пользователя, которому явно запрещено, то у пользователя будут права на запись.

P.S. Если контрагентов немного, то можно действием "Настроить права доступа" на странице контрагента настроить нужные права.

"Варфоломеев Данила" написал:

Само администрирование по записям включено на объекте "Контрагент"?

upd. Стоп. Натупил)

Вы скриптом раздаёте права, а не запрещаете. Чтобы запретить, надо просто ничего не добавлять)


если ничего не добавлять то пользователи вносят изменения.

RightLevel:

0 запрещено
1 разрешено
1 разрешено с правом делегирования

"Демьяник Алексей" написал:

Коллеги, здравствуйте!

Немного о правах:

1) Права действительно забираются такими скриптами.

Разгадка почему в результате запроса:

SELECT * FROM SysEntitySchemaRecOprRightLvl

2) У объекта Account должны быть включены запрещающие права (но я бы этого не рекомендовал делать)

3) Значение поля Position - играет роль:

если пользователь входит в роль, которой "Разрешено" и Position этой записи меньше Position записи пользователя, которому явно запрещено, то у пользователя будут права на запись.

P.S. Если контрагентов немного, то можно действием "Настроить права доступа" на странице контрагента настроить нужные права.

на обьекте Account стоит признак Администрирование по операциям
пользователь входит в группу у Все пользователи и доступ на операции Чтение Добавление Изменения

на странице контрагента нет пункта Настроить права доступа.
да и потом этих контрагентов не мало.

пробовал ставить значение Position больше и меньше , все равно изменения сохраняются.

Здравствуйте!

Возвращаемся к основам администрирования. Есть три типа настройки прав:
1) По операциям - влияет на все записи объекта (не решает задачу)
2) По полям - определяет доступ к конкретным полям объекта
3) По записям.

Проверьте включенное администрирование по записям для объекта "Контрагент". Можно удалить права для записей, а потом добавить только нужные. Это альтернативное решение.

На обьект Контрагент включено Администрирование по операциям
Хотелось бы все так скриптом решить эту задачу.

"Евдокимов Евгений" написал:Проверьте включенное администрирование по записям для объекта "Контрагент"

Повторюсь:
"Проверьте включенное администрирование по записям для объекта "Контрагент""

"Демьяник Алексей" написал:
Евдокимов Евгений пишет:

Проверьте включенное администрирование по записям для объекта "Контрагент"

Повторюсь:

"Проверьте включенное администрирование по записям для объекта "Контрагент""


оно отключено
см вложение

На пересечении названия объекта "Контрагент" и столбика "Администрируется по записям" стоит крестик.

Это значит, что администрирование по записям отключено...

"Демьяник Алексей" написал:

На пересечении названия объекта "Контрагент" и столбика "Администрируется по записям" стоит крестик.

Это значит, что администрирование по записям отключено...


"Демьяник Алексей" написал:

На пересечении названия объекта "Контрагент" и столбика "Администрируется по записям" стоит крестик.

Это значит, что администрирование по записям отключено...

Здравствуйте!
Это значит что скриптом не получиться решить эту задачу?

Здравствуйте!

Для того, чтобы решить Вашу задачу скриптом необходимо включить "Администрирование по записям" для объекта "Контрагент".

Если администрирование по записям отключено, то при попытке изменения записи контрагента не учитываются права, которые Вы добавили скриптом в таблицу "SysAccountRight"

Здравствуйте!

Для того, чтобы решить Вашу задачу скриптом необходимо включить "Администрирование по записям" для объекта "Контрагент".

Если администрирование по записям отключено, то при попытке изменения записи контрагента не учитываются права, которые Вы добавили скриптом в таблицу "SysAccountRight"

Показать все комментарии