0
- 24.10.2014 - 10:44
|
Ежедневно восстанавливается база MSSQL из бэкапа как тестовая. Нужно выставлять конкретным пользователям на этой тестовой базе ПолныеПрава. Как это сделать скриптом по расписанию утром. Наверно, есть параметры при запуске в командной строке?
| |
1
- 24.10.2014 - 11:17
| (0) нету, надо сделать обработку которая это делает, и вызывать её уже с помощью командной строки | |
2
- 24.10.2014 - 11:31
|
Да. /Execute [имя файла внешней обработки] и запускать батник по расписанию. вот что в обработке написать? Метаданные.Роли.ПолныеПрава РольДоступна(...... ПараметрыДоступа(<НаименованиеПрава>, <ОбъектМетаданных>, <СписокПолей>, <Пользователь/Роль>) | |
3
- 24.10.2014 - 12:20
| нужно установить пользователя с административными правами программно в обработке, но как не знаю. | |
4
- 24.10.2014 - 12:32
|
3-Klyukovkin > "нужно установить пользователя с административными правами программно" - мусье знает толк в извращениях... И откуда такая уверенность, интересно? Весь такой непререкаемый: "Нужно!" :D | |
5
- 24.10.2014 - 12:37
| +3 И кстати: "установить программно в обработке" - это как? До запуска, штоль?? А "программно устанавливать" под какими правами будем? | |
6
- 24.10.2014 - 12:40
|
(4) VZ Извините, что встревожил Ваши Чувства. Задачка в том, чтоб установить пользователю нужную Роль. чтоб РольДоступна(.. в Истину пришла :)) коль знаете, так пишите, мусье Заранее Благодарен | |
7
- 24.10.2014 - 12:47
| 6-Klyukovkin > Зачем??? Чем не угодил "служебный" пользователь? | |
8
- 24.10.2014 - 12:51
|
по Теме, пожалуйста, напишите. "C:\Program Files\1cv82\8.2.15.301\bin\1cv8.exe" ENTERPRISE /FH:\energobase /Execute обработка | |
9
- 24.10.2014 - 12:57
|
VZ Мил друг. Всё предельно просто для крупного предприятия: в рабочей базе права админа только админу, но на копии админ разрешает писать что хочешь. Дабы не тревожить админа каждое утро, чтоб давал полныеправа мне руками в конфе, запускается обработка с присвоением Роли. Так как же УстановитьРоль(ВасяПользователь, ПолныеПрава) Знаете? | |
10
- 24.10.2014 - 13:02
|
8-Klyukovkin > "По теме" жду ответа на вопросы "Чем не угодил "служебный" пользователь?", и "под какими правами будем "программно устанавливать" нужную роль?". Кстати, стирать эту самую роль по завершению процесса, предусматривается? А ничего, что пользователь, обладающий правами назначать себе роль, может сделать это без позволения, а? Моет, есть смысл сначала продумать свою идею, а потом присваивать ей статус гениальной? | |
11
- 24.10.2014 - 13:11
|
9-Klyukovkin > Теперь понятно ;) ЗначиЦЦа так: Под правами админа запускается эта самая обработка для "БД вчерашнего дня", которая конкретному пользователю добавляет роль. Алгоритм берется из соответствующей обработки управления списком пользователей. | |
12
- 24.10.2014 - 13:25
| (11) я туплю - Что за "соответствующей обработки управления списком пользователей" | |
13
- 24.10.2014 - 13:50
|
12-Klyukovkin > Начнем с самого начала. "Наверно, есть параметры при запуске в командной строке?"(0) - что, собственно, и вызвало последующий срач. Нет таких параметров командной строки, что бы в данных что-то меняли. А список пользователей и набор ролей есть часть базы. Потому путь вполне даже традиционный: запускается на исполнение клиент, который должен выполнить какие-то действия в БД. В данном случае эти действия суть прописка пользователя. Значит, клиент должен запускатся под юзером, имеющим административные права. Админом, короче. После запуска при старте должна запуститься обработка (или задание - дело вкуса), которая сделает нечто со списком пользователей (добавит объект, или модернизирует, что для озвученной задачи совсем не важно). На известном ресурсе ИС (http://infostart.ru/) я как-то видел решение для переноса списка пользователей (или формирования). По-моему, это то, что надо. | |
14
- 24.10.2014 - 13:55
|
добавить роль: ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ВыбПол ьзователь); ПользовательИБ.Роли.Добавить(Метаданные.Роли.Бухга лтер); ПользовательИБ.Записать(); удалить роль: ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ВыбПол ьзователь); ПользовательИБ.Роли.Удалить(Метаданные.Роли.Кассир ); ПользовательИБ.Записать(); | |
15
- 24.10.2014 - 13:58
|
Всего-то подсказать нужно было, что в ОбщихОбъектах есть Работа со списком пользователей информационной базы Откуда всё и берем. стало быть пишем: СтарыйПрограммистПользователь = ПользователиИнформационнойБазы.НайтиПоИмени("Стары йПрограммист"); СтарыйПрограммистПользователь.Роли.Добавить(Метада нные.Роли.ПолныеПрава); СтарыйПрограммистПользователь.Записать(); | |
16
- 24.10.2014 - 14:09
|
(12) VZ Спасибо, как видите сам нашел нужную веть в структуре ОбщихОбъектов. Всё, что Вы пишите делалось неоднократно мною, и список пользователей переносил при конвертациях и переделках всяких баз, и батники вешал на расписание (понятно что запускаюсь с паролем Админа). НО вот сразу сказать как angro: см. ПользователиИнформационнойБазы видать тяжко было :)) ВСЕМ СПАСИБО | |
17
- 24.10.2014 - 14:15
|
15-Klyukovkin > "Как сформировать вопрос, чтобы получить на форуме правильный ответ?" Эти несложные правила легко найти в интернете: они появились одновременно с ним. Мало задать вразумительный вопрос (не надеясь, что кто-то знает ваши обстоятельства, и догадается о цели вопроса). Надо еще выбросить из него предполагаемое решение (если такой умный, так проверь его самостоятельно!) | |
18
- 24.10.2014 - 14:19
| не было времени. А так не только умный, но и опытный - знаю, что это стандарт, а вот забыл код. angro вот например сообразал сразу и правильно подсказал. Всё закончили. | |
| Интернет-форум Краснодарского края и Краснодара |