Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   полные права из командной строки (http://forums.kuban.ru/f1040/polnye_prava_iz_komandnoj_stroki-6211548.html)

dsclue 24.10.2014 10:44

полные права из командной строки
 
Ежедневно восстанавливается база MSSQL из бэкапа как тестовая. Нужно выставлять конкретным пользователям на этой тестовой базе ПолныеПрава. Как это сделать скриптом по расписанию утром. Наверно, есть параметры при запуске в командной строке?

angro 24.10.2014 11:17

(0) нету, надо сделать обработку которая это делает, и вызывать её уже с помощью командной строки

dsclue 24.10.2014 11:31

Да. /Execute [имя файла внешней обработки]
и запускать батник по расписанию.
вот что в обработке написать?

Метаданные.Роли.ПолныеПрава
РольДоступна(......
ПараметрыДоступа(<НаименованиеПрава>, <ОбъектМетаданных>, <СписокПолей>, <Пользователь/Роль>)

dsclue 24.10.2014 12:20

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

VZ 24.10.2014 12:32

3-Klyukovkin > "[em]нужно установить пользователя с административными правами программно[/em]" - мусье знает толк в извращениях...
И откуда такая уверенность, интересно? Весь такой непререкаемый: "Нужно!" :D

VZ 24.10.2014 12:37

+3 И кстати: "[em]установить программно в обработке[/em]" - это как? До запуска, штоль?? А "программно устанавливать" под какими правами будем?

dsclue 24.10.2014 12:40

(4) VZ Извините, что встревожил Ваши Чувства.
Задачка в том, чтоб установить пользователю нужную Роль.
чтоб РольДоступна(.. в Истину пришла :))
коль знаете, так пишите, мусье
Заранее Благодарен

VZ 24.10.2014 12:47

6-Klyukovkin > Зачем??? Чем не угодил "служебный" пользователь?

dsclue 24.10.2014 12:51

по Теме, пожалуйста, напишите.

"C:\Program Files\1cv82\8.2.15.301\bin\1cv8.exe" ENTERPRISE /FH:\energobase /Execute обработка

dsclue 24.10.2014 12:57

VZ Мил друг. Всё предельно просто для крупного предприятия:
в рабочей базе права админа только админу, но на копии админ разрешает писать что хочешь. Дабы не тревожить админа каждое утро, чтоб давал полныеправа мне руками в конфе, запускается обработка с присвоением Роли.
Так как же УстановитьРоль(ВасяПользователь, ПолныеПрава) Знаете?

VZ 24.10.2014 13:02

8-Klyukovkin > "По теме" жду ответа на вопросы "Чем не угодил "служебный" пользователь?", и "под какими правами будем "программно устанавливать" нужную роль?". Кстати, стирать эту самую роль по завершению процесса, предусматривается?
А ничего, что пользователь, обладающий правами назначать себе роль, может сделать это без позволения, а?
Моет, есть смысл сначала продумать свою идею, а потом присваивать ей статус гениальной?

VZ 24.10.2014 13:11

9-Klyukovkin > Теперь понятно ;)
ЗначиЦЦа так: Под правами админа запускается эта самая обработка для "БД вчерашнего дня", которая конкретному пользователю добавляет роль.
Алгоритм берется из соответствующей обработки управления списком пользователей.

dsclue 24.10.2014 13:25

(11) я туплю - Что за "соответствующей обработки управления списком пользователей"

VZ 24.10.2014 13:50

12-Klyukovkin > Начнем с самого начала. "[em]Наверно, есть параметры при запуске в командной строке[/em]?"(0) - что, собственно, и вызвало последующий срач.
Нет таких параметров командной строки, что бы в данных что-то меняли. А список пользователей и набор ролей есть часть базы.
Потому путь вполне даже традиционный: запускается на исполнение клиент, который должен выполнить какие-то действия в БД.
В данном случае эти действия суть прописка пользователя. Значит, клиент должен запускатся под юзером, имеющим административные права. Админом, короче.
После запуска при старте должна запуститься обработка (или задание - дело вкуса), которая сделает нечто со списком пользователей (добавит объект, или модернизирует, что для озвученной задачи совсем не важно).
На известном ресурсе ИС ([url]http://infostart.ru/[/url]) я как-то видел решение для переноса списка пользователей (или формирования). По-моему, это то, что надо.

angro 24.10.2014 13:55

добавить роль:
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ВыбПользователь);
ПользовательИБ.Роли.Добавить(Метаданные.Роли.Бухгалтер);
ПользовательИБ.Записать();

удалить роль:

ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ВыбПользователь);
ПользовательИБ.Роли.Удалить(Метаданные.Роли.Кассир);
ПользовательИБ.Записать();

dsclue 24.10.2014 13:58

Всего-то подсказать нужно было, что в ОбщихОбъектах есть Работа со списком пользователей информационной базы Откуда всё и берем.
стало быть пишем:
СтарыйПрограммистПользователь = ПользователиИнформационнойБазы.НайтиПоИмени("СтарыйПрограммист");
СтарыйПрограммистПользователь.Роли.Добавить(Метаданные.Роли.ПолныеПрава);
СтарыйПрограммистПользователь.Записать();

dsclue 24.10.2014 14:09

(12) VZ Спасибо, как видите сам нашел нужную веть в структуре ОбщихОбъектов. Всё, что Вы пишите делалось неоднократно мною, и список пользователей переносил при конвертациях и переделках всяких баз, и батники вешал на расписание (понятно что запускаюсь с паролем Админа). НО вот сразу сказать как angro: см. ПользователиИнформационнойБазы видать тяжко было :))
ВСЕМ СПАСИБО

VZ 24.10.2014 14:15

15-Klyukovkin > "Как сформировать вопрос, чтобы получить на форуме правильный ответ?"
Эти несложные правила легко найти в интернете: они появились одновременно с ним.
Мало задать вразумительный вопрос (не надеясь, что кто-то знает ваши обстоятельства, и догадается о цели вопроса).
Надо еще выбросить из него предполагаемое решение (если такой умный, так проверь его самостоятельно!)

dsclue 24.10.2014 14:19

не было времени. А так не только умный, но и опытный - знаю, что это стандарт, а вот забыл код. angro вот например сообразал сразу и правильно подсказал. Всё закончили.


Текущее время: 10:29. Часовой пояс GMT +3.