Как назначить пользователю право админа из под у.з. самого пользователя

1. user875116 27.06.22 17:05 Сейчас в теме
Здравствуйте коллеги!

Помогите с таким вопросом..

Есть тестовые базы, в которые нужен периодически доступ пользователям, но у них нет админа в рабочей и его там им нельзя давать.

Хочу сделать обработку, где бы в тестовых они бы сами себе назначали бы админа и могли бы работать.
Прикрепленные файлы:
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 27.06.22 17:11 Сейчас в теме
(1) УстановитьПривилегированныйРежим(Истина) отключит проверку прав в области видимости кода после этого метода и до его отключения или выхода из метода.,
3. user875116 27.06.22 17:16 Сейчас в теме
(2) Почему-то не получается.

Всё равно пишет что недостаточно прав..

Строчку с привелигированным режимом пишу до исполнения назначения прав

Почему так получаться может?
4. FatPanzer 27.06.22 17:21 Сейчас в теме
(3) Что такое "назначение прав" в программном коде?
11. user875116 27.06.22 17:49 Сейчас в теме
(4) присвоить права админа пользователю, у которого их нет им же самим (если он прописан в коде как тот кому это разрешено сделать)
12. FatPanzer 27.06.22 17:50 Сейчас в теме
(11) да вы, батенька, хакер!!!
5. spacecraft 27.06.22 17:24 Сейчас в теме
(3) этот код во внешней обработке? Так он там и не сработает, если у пользователя нет прав Администрирование.
6. user875116 27.06.22 17:28 Сейчас в теме
(5) а как можно ещё это обыграть?

создать в справочнике форму с таким кодом?
7. spacecraft 27.06.22 17:30 Сейчас в теме
(6) как вариант, в общем серверном модуле. Можно вообще общий модуль сделать привилегированным. Только появляется уязвимость.
8. user875116 27.06.22 17:31 Сейчас в теме
(7) я жёстко по GIUD прописываю несколько пользователей....
10. FatPanzer 27.06.22 17:41 Сейчас в теме
(8) Расскажите мне про GUID элементов объекта ПользователиИнформационнойБазы - очень интересно!
15. spacecraft 27.06.22 19:08 Сейчас в теме
(6) если нет прав администрирования, то не выйдет изменить.
Тогда, как вариант:
Создать роль Администрирование с правами:
"Администрирование"
"Тонкий клиент"
возможно еще несколько прав добавить.

Добавить служебного пользователя, у которого отключить свойство "Показывать в списке выбора"
Этого пользователя можно указать в параметрах командной строки запуска. Так же передавать ПараметрЗапуска, к примеру: /C"Администрирование"
В обработчике модуля приложения ПередНачаломРаботыСистемы проверять ПараметрЗапуска и если есть нужный, тогда уже запускать поиск пользователя и добавление ролей. И завершать работу системы.
16. FatPanzer 27.06.22 19:37 Сейчас в теме
(15)
Этого пользователя можно указать в параметрах командной строки запуска.
То есть этот "служебный пользователь" будет светиться в ЖР для всех последующих действий? Удобный анонимус получится.
17. spacecraft 27.06.22 19:43 Сейчас в теме
(16) "служебный" в данном случае не означает замену пользователя по умолчанию. Это обычный пользователь, но без отображения в списке пользователей для выбора при запуске. Просто можно указать как пользователя для запуска из командной строки. Соответственно выполнит(или нет) необходимые действия и завершит работу.
19. FatPanzer 27.06.22 19:56 Сейчас в теме
(17) Это прекрасно. Размышляем дальше:
1. У нас несколько пользователей.
2. Кому-то или нескольким или всем - надо дать права админа.
3. Предлагаемое вами решение - запускать некий батник от имени служебного пользователя, который раздаст права админа тому, кто запустил этот батник. После чего пользюк сможет работать под своей учеткой и с правами админа.

Я правильно уловил мысль?

Теперь вопрос - КОМУ эта обработка должна раздать права админа? Как это определить на стадии запуска батника? Для каждого пользюка прописывать в ПриНачалеРаботыСистемы() свой персональный ключ запуска и каждому выдавать ярлык для запуска???
20. spacecraft 27.06.22 20:05 Сейчас в теме
(19) это уже вопрос к реализации. вариантов масса.
Можно по конкретным именам пользователей ИБ находить. Можно получить гуиды для нужных пользователей ИБ и находить по ним.
Можно прописать запуск в общем модуле или создать внешнюю обработку.
21. FatPanzer 27.06.22 20:08 Сейчас в теме
(20) Тогда это уже не "пользователь назначает сам себе права". Это некий другой алгоритм, требующий единоразового запуска из под админа.

PS Условие автора - "из под УЗ самого пользователя". Понятно, что идиот, но тем не менее..
22. spacecraft 27.06.22 20:12 Сейчас в теме
(21) "Хочу сделать обработку, где бы в тестовых они бы сами себе назначали бы админа и могли бы работать." именно это и подразумевает. Единоразовый запуск для добавления роли админа конкретным пользователям. Тем более заранее известно каким пользователям добавить эту роль.
23. FatPanzer 27.06.22 20:15 Сейчас в теме
(22) Стоп. Пользюк заходит под своим логином или под служебным??? У автора требование - чтобы из под своего имени. а вы предлагаете некий универсал, под которым все 100500 пользюков всех филиалов назначат себе права админа из под служебной учетки с открытым паролем в строке запуска.

И они запустят.
И не факт, что именно в тестовой базе.
24. spacecraft 27.06.22 20:25 Сейчас в теме
(23) суть требований, дать пользователю в тестовой базе права админа. Чтобы они могли курочить тестовую базу. Достаточно дать права одному текущему пользователю. Он потом может при необходимости и другим роли понаставить.
Зайти под служебным пользователем будет нельзя. Он не отображается в списке выбора пользователей. Да и пароль не известен.
Пользователь заходит под своей учеткой. Запускает обработку.
Эта обработка находит гуид этого пользователя и запускает через КомандаСистемы скрипт запуска базы через командную строку, с передачей имени служебного пользователя, его пароля и параметра системы, в который можно предать полученный ранее гуид.
Чтобы не запускалось это не в тестовой базе, то можно использовать тот же механизм, как типовые определяют, что это КОПИЯ.
Чтобы не светить пароль служебного пользователя, можно из поставки исключить текст общего модуля.
25. FatPanzer 27.06.22 20:32 Сейчас в теме
(24)
суть требований, дать пользователю в тестовой базе права админа.
Для этого вполне достаточно регламентного задания, которой раз в сутки по имени базы будет предоставлять всем права админа. Или не всем.

Обычная допобработка с ежесуточным расписанием. С формой настройки (настройка имен тестовых баз и ограничения по пользюкам).

Форма настройки доступна только РЕАЛЬНОМУ админу.

И не надо лохматить бабушку!!!
26. spacecraft 27.06.22 20:34 Сейчас в теме
(25)
С формой настройки (настройка имен тестовых баз и при необходимости пользюков)

читаем шапку: "у них нет админа в рабочей и его там им нельзя давать."
Админа у пользователей нет изначально. Кто это будет делать?
27. FatPanzer 27.06.22 20:38 Сейчас в теме
(26) Админ. РЕАЛЬНЫЙ. Он же есть. Один раз настроить имена баз (копий) в боевой базе - и все, срать на остальные тестовые.

Естественно, в тестовых копиях должны быть разрешены регламентные задания. Ну или как-то по другому этот вопрос урегулировать...

Но вся эта фигня со специальными строками запуска - она и есть фигня.

В крайнем случае - этот регламент может запускаться из боевой базы для настроенного списка тестовых баз.

Да даже и без регламентного задания - зафигачьте в расширение ПриНачалеРаботыСистемы() эту проверку - да и все.
28. spacecraft 27.06.22 20:45 Сейчас в теме
(27) это ответ совсем на другие требования.
Как я понимаю, эти тестовые копии нужны для отладки актуальных данных. Прописанные первоначально тестовые базы не нужны будут со временем.

И не нужно так нервничать. Решать все равно не нам.

Но вся эта фигня со специальными строками запуска - она и есть фигня.

Да да. так и заявите фирме 1С, а то повадились бэкапы скриптами делать :)
30. FatPanzer 27.06.22 20:52 Сейчас в теме
(28)
Как я понимаю, эти тестовые копии нужны для отладки актуальных данных. Прописанные первоначально тестовые базы не нужны будут со временем.
и как это противоречит? Если копии делаются автоматизированно по плану скриптами SQL - то наверняка у них и имена заранее известны и жестко зафиксированы.
А если каждая копия делается вручную под каждую хотелку конкретного пользователя - ну вот админ, который её сделал - у того точно найдется 2 минуты времени, чтобы либо изменить права, либо прописать базу в настройках.

Да да. так и заявите фирме 1С, а то повадились бэкапы скриптами делать :)
Ага. Вот только скрипт бэкапа не запускает некий "заранее внедренный в конфигурацию ключ запуска", а тупо запускает механизм платформы. Он не дает запускающему пользователю несанкционированного доступа к данным.
31. user875116 27.06.22 21:04 Сейчас в теме
(30) Ребята, вы лучшие!!!

Вы натолкнули меня на более простое решение!!!

Просто прописать по гуиду нужных мне пользюков админами, если в базе запрещена работа внешних обработок и регл. заданий!

Осталось только получить на это разрешение!

П.С. Я бы даже с удовольствием вам обоим присвоил бы решение, жаль так нельзя!
34. FatPanzer 27.06.22 21:06 Сейчас в теме
(31)
Просто прописать по гуиду нужных мне пользюков админами, если в базе запрещена работа внешних обработок и регл. заданий!
И где ты будешь это прописывать? В боевой? Или каждый раз при создании тестовой?
35. user875116 27.06.22 21:07 Сейчас в теме
(34) в боевой придётся дописать несколько строчек... да...
36. FatPanzer 27.06.22 21:08 Сейчас в теме
37. -AI- 27.06.22 21:08 Сейчас в теме
(35) и вот в боевой, отключают регламентные задания, для профработ каких-нить....
и все дружно становятся админами?
38. user875116 27.06.22 21:09 Сейчас в теме
(37)
(37)
(35) и вот в боевой, отключают регламентные задания, для профработ каких-нить....


нет только те юзеры которые прописаны в условии по гуиду, 2 или 3 чела.. этого даже никто не заметит
39. -AI- 27.06.22 21:12 Сейчас в теме
(38) в ТЗ было, что в боевой базе им НЕЛЬЗЯ быть админами, а они ими станут...

PS и кто не заметит? интерфейс пользователей сразу изменится...

PPS чем вариант в (29) не нравится?
41. FatPanzer 27.06.22 21:23 Сейчас в теме
(31)
П.С. Я бы даже с удовольствием вам обоим присвоил бы решение, жаль так нельзя!
Можно, не стесняйся.
33. spacecraft 27.06.22 21:06 Сейчас в теме
(30) админ может быть у франча. И не хочет давать права админа сотрудникам предприятия. Или еще по каким причинам.
В любом случае у предприятия/подразделения по факту нет админа пользователя. Некому дать права, иначе и самого вопроса не было бы.

(30)
Он не дает запускающему пользователю несанкционированного доступа к данным.

т.е. когда скрипт дает этот доступ, то это плохо, а если регламентное задание, то все нормально?
(27) По поводу регламентных заданий:
1. Базы на БСП для копии отрубают регламентные задания. Это правильно. Не факт, что пользователи смогут запустить нужное.
2. запуск регламентного задания 1 раз в сутки. Вот зачем это нужно? для постоянно работы лишняя нагрузка. Для копии - слишком большой интервал.
3. и какой текущий пользователь будет во время выполнения регламентного задания? Кому он роли будет прописывать? Всем? А если не нужно всем?

Да даже и без регламентного задания - зафигачьте в расширение ПриНачалеРаботыСистемы() эту проверку - да и все.

А с этим вообще приходим к тому, с чего и начали: "если нет прав Администрирование, то не даст изменить."
40. FatPanzer 27.06.22 21:17 Сейчас в теме
(33)
админ может быть у франча.
После этого вообще стало неинтересно )) Владелец данных, отдающий админский доступ на сторону, и не имеющий к нему доступа... Ну. Помер максим, ну и...

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

Конечно. Потому что внешний скрипт - это внешний файл, который может запустить любой лох. А регламентное задание - это внутренняя сущность 1С, её может настроить только реальный админ, а не лох с дискеткой.

запуск регламентного задания 1 раз в сутки. Вот зачем это нужно? для постоянно работы лишняя нагрузка. Для копии - слишком большой интервал.

Я где-то настаивал именно на таком интервале? И что за лишняя такая нагрузка на сервер - раз (или несколько) в сутки прочитать настройки из ХранилищеНастроек и сравнить с текущим именем базы?

Кому он роли будет прописывать? Всем? А если не нужно всем?
Вы хоть бы читали что я писали, прежде чем отвечать. Я же не зря упомянул о форме настройки допобработки, на которой возможно прописывать все необходимые разрешения/ограничения? И про то, что эта форма будет доступна только реальному админу - я же тоже писал, правда?
42. spacecraft 27.06.22 21:24 Сейчас в теме
(40)
Потому что внешний скрипт - это внешний файл, который может запустить любой лох

Повторю ваши же слова: "Вы хоть бы читали что я писали, прежде чем отвечать."
Какой нафиг внешний файл?
Скрипт формируется внутри модуля как строка.
Точно так же работает и скрипт бэкапа в типовых. Формируется строка запуска пакетного задания вызова конфигуратора с передачей параметров на создание бэкапа средствами конфигуратора.
43. FatPanzer 27.06.22 21:30 Сейчас в теме
(42)
Точно так же работает и скрипт бэкапа в типовых. Формируется строка запуска пакетного задания вызова конфигуратора с передачей параметров на создание бэкапа средствами конфигуратора.
Ага. Вот только ключи конфигуратора жестко регламентированы.
А вы предлагаете использовать при запуске в режиме Предприятия то ли платформенный ключ запуска внешней обработки, то ли использовать кастомизированный ключ запуска от БСП.
Я верно понимаю?
44. spacecraft 27.06.22 21:46 Сейчас в теме
(43) странные выводы.
строка скрипта:
Скрипт = """C:\Program Files\1cv81\bin\1cv8.exe"" ENTERPRISE /F""D:\1C_base\ZUPRAZR"" /N""Админ"" /P""12345"" /C""тутГуид""";


то что передаем в параметре /C будет доступно на клиенте в глобальном контексте ПараметрЗапуска. так можно передать гуид или имя пользователя для последующего использования.
Просто анализируем в обработчике ПередНачаломРаботыСистемы ПараметрЗапуска и если там есть нужные данные проверяем доступность права Администрирование. На основании этого выполняем нужные действия при необходимости и завершаем работу.

В параметр можно передавать любые строковые данные. Можно сформировать строку json, в которой передавать формализованные данные, чтобы быть уверены в результате получения нужных данных.
Все это делается внутри модулей 1С.
45. FatPanzer 27.06.22 22:05 Сейчас в теме
(44)
Просто анализируем в обработчике ПередНачаломРаботыСистемы ПараметрЗапуска и если там есть нужные данные проверяем доступность права Администрирование. На основании этого выполняем нужные действия при необходимости и завершаем работу.

Так я об этом и говорю: если знаешь незащищенный ключ запуска, то получаешь админский доступ ко всем данным.
Или вы думали, что я тут спорю про техническую сторону вопроса???
46. spacecraft 27.06.22 22:08 Сейчас в теме
(45)
Так я об этом и говорю: если знаешь незащищенный ключ запуска, то получаешь админский доступ ко всем данным.

А теперь смотрим (24):
Чтобы не светить пароль служебного пользователя, можно из поставки исключить текст общего модуля.
47. FatPanzer 27.06.22 22:11 Сейчас в теме
(46) Причем тут светить или нет?
Расскажите мне, как вы при создании копии исключите текст общего модуля?
48. spacecraft 27.06.22 22:12 Сейчас в теме
(47)
Расскажите мне, как вы при создании копии исключите текст общего модуля?

повторю: исключить из поставки текст общего модуля. Текста модуля не будет в основной базе, соответственно его не будет и в копии.
49. FatPanzer 27.06.22 22:15 Сейчас в теме
(48) Аааа! я понял! Построить забор за 500 баксов, чтобы охранять лошадь, которая стоит 10 тугриков...
9. FatPanzer 27.06.22 17:36 Сейчас в теме
(5) Я предположу, что он не сработает вообще никогда. Потому что таблица ПользователиИнформационнойБазы - служебная таблица, и вряд ли на неё распространяется привилегированный режим.
spacecraft; +1 Ответить
13. spacecraft 27.06.22 19:01 Сейчас в теме
(9) да. если нет прав Администрирование, то не даст изменить.
14. FatPanzer 27.06.22 19:03 Сейчас в теме
(13) Ну и не фиг тогда яйца лизать. Где ж это видано - чтобы всякий лох сам себе root раздавал?
29. -AI- 27.06.22 20:51 Сейчас в теме
(1) задача выеденного яйца не стоит... ИМХО

если тестовая база = еженочный бекап, то надо просто в батник, который делает бекап,
добавить запуск обработки, которая делать права тем кому надо. при каждом делании бекапа

и всё.

PS обработка запускается с правами того, кто имеет права это сделать, а тем кому это надо сделать.
18. XAKEP 27.06.22 19:44 Сейчас в теме
Есть тестовые базы, в которые нужен периодически доступ пользователям, но у них нет админа в рабочей и его там им нельзя давать.

Хочу сделать обработку, где бы в тестовых они бы сами себе назначали бы админа и могли бы работать.


это на каком языке понимать ?
32. user875116 27.06.22 21:06 Сейчас в теме
(18) ну извините, вот такую нужно сделать обработину ))))
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот