|
Как запретить тестовой базе 1C подключаться к внешней базе SQL | ☑ | ||
---|---|---|---|---|
0
Антиквар
23.11.21
✎
16:21
|
Всем привет!
Есть база 1С и внешняя база SQL, в которую 1С постоянно лазает и читает/пишет в кучу разных таблиц. Это делается не только регламентными заданиями, но ещё и по нажатию разных кнопок. Лазает 1С напрямую, через COM-объект. Настройки подключения заданы в базе 1С. Проблема в том, что если сделать копию базы, то из неё также можно лазать во внешнюю базу SQL, менять во внешней базе данные или загружать данные из неё. Можно конечно удалять настройки в копиях, но не всегда ты знаешь когда админ сделал копию для кого-то, да и забыть можно. Какой наиболее оптимальный способ, чтобы был запрет во внешней базе SQL на чтение/запись из тестовых баз? Можно ли реализовать средствами SQL, или это нужно в 1С как-то продумывать. Просьба не предлагать перейти на более современные технологии взаимодействия (не через COM), в этой базе всё будет так, до перехода на новую базу |
|||
1
Мультук
гуру
23.11.21
✎
16:22
|
(0)
Сильно внешняя? На другом сервере? Firewall ? |
|||
2
pechkin
23.11.21
✎
16:24
|
сделай юзера ИмяСервере+ИмяБазы.
сам логин не храни, а генерируй |
|||
3
ДенисЧ
23.11.21
✎
16:27
|
В БСП же есть функциональность запрета на доступ к внешним ресурсам... Проверяй и не давай.
|
|||
4
Смотрящий
23.11.21
✎
16:28
|
(0) поройся в коде 1с, нади где там она определяет "КОПИЯ" для базы и отрубает регламенты
Привяжи кнопки свои к этому событию и подменяю юзера для SQL |
|||
5
ДенисЧ
23.11.21
✎
16:28
|
А если не БСП - оттуда же можно спереть кодо
|
|||
6
fisher
23.11.21
✎
16:30
|
(4) Достаточно просто при запуске определять что это копия и херить параметры подключения.
|
|||
7
fisher
23.11.21
✎
16:31
|
ИМХО, со стороны сиквела тут ничего не придумаешь. Неясно даже по какому критерию блочить.
|
|||
8
timurhv
23.11.21
✎
16:33
|
(3) Защита от дурака в (2) лучше предложена, пользователь может нажать база перемещена.
|
|||
9
fisher
23.11.21
✎
16:34
|
(8) И правда. Не обратил внимания.
|
|||
10
Антиквар
23.11.21
✎
16:36
|
(1) Да, на другом сервере. Сетка внутри одной большой организации
(2) Хорошая идея, согласятся ли разрабы на стороне той SQL-базы. Юзеров они нам дают. (6) Тоже норм, но для тестов разработчиков есть отдельный сервер, и там параметры нужны) Но надо подумать |
|||
11
Антиквар
23.11.21
✎
16:37
|
(7) ну вот по (2). Завести на сиквеле юзеров для 1С.
|
|||
12
fisher
23.11.21
✎
16:41
|
(10) > Хорошая идея, согласятся ли разрабы на стороне той SQL-базы
Можно завести соответствие имени базы в кластере логину подключения. Получаешь из строки подключение имя текущей базы в кластере и если не находишь соответствующего ей логина - то не подключаешься. |
|||
13
fisher
23.11.21
✎
16:42
|
Короче, достаточно в справочник параметров подключения добавить имя базы в кластере 1С, для которого это подключение имеет право устанавливаться.
|
|||
14
Kassern
23.11.21
✎
16:44
|
(0) Если на одном кластере, то ИмяБазы=НСтр(СтрокаСоединенияИнформационнойБазы(), "Ref"), если она не совпадает с именем рабочей базы, то по бороде обмен. Имя рабочей базы можете в каких-нибудь настройках админских хранить.
|
|||
15
Kassern
23.11.21
✎
16:45
|
(14) Можно и в связке с именем сервера проверять. Это конечно не дает какой-то ппц защиты, но сможет случайные обмены исключить из копии.
|
|||
16
Антиквар
23.11.21
✎
16:47
|
Спасибо, понял
|
|||
17
ДенисЧ
23.11.21
✎
16:49
|
(8) Дураков нужно отстреливать, а не защищаться от них.
Лучшая защита это нападение. |
|||
18
Kassern
23.11.21
✎
16:52
|
(8) поэтому лучше в кластере отключить рег задания для копии базы.
|
|||
19
Антиквар
23.11.21
✎
17:05
|
(18) Это само собой, но не поможет, т.к. есть тупо кнопки, забирающие документы в 1С например
|
|||
20
Kassern
23.11.21
✎
17:07
|
(19) все эти подключения по кнопке надеюсь к одной процедуре/функции подключения ссылаются? Вот в ней и сделать проверку на соответствие строки базы с настройками.
|
|||
21
Антиквар
23.11.21
✎
17:17
|
(20) Да, в одной процедуре. Только баз несколько ) Но один раз можно в каждой базе это сделать конечно
|
|||
22
vs84
23.11.21
✎
17:21
|
(0) Константа ПутиПодключенияКРабочейБазе, там перечислить путь(пути) подключения к рабочей
метод где-то в общих модулях БазаРабочая(), который проверяет вхождение пути подключения текущей базы в значение константы. Там где код лезет наружу добавить Если .БазаРабочая() Тогда во всех копиях рабочей, будет указан путь рабочей и они автоматом будут нерабочие. |
|||
23
vs84
23.11.21
✎
17:22
|
(22) + "метод где-то в общих модулях" добавить
|
|||
24
Михаил Козлов
23.11.21
✎
17:27
|
Наверное, криво, делал так:
Если ПараметрыСеанса.РаботаСВнешнимиРесурсамиЗаблокирована = ИСТИНА Тогда Возврат; КонецЕсли; |
|||
25
ДедМорроз
23.11.21
✎
19:47
|
Можно посмотреть блокировку регламентных заданий и определение перемещения базы и задействовать этот механизм и для своих вызовов.
|
|||
26
Megas
24.11.21
✎
10:03
|
(14) + у нас так и реализовано.
Есть Параметры - имя рабочей базы - имена рабочих серверов. И всё это сверяется с текущими значениями перед коннектами, выгрузками и даже рег заданиями (были умельцы которые не ставили галку блокировка рег заданий на копии) |
|||
27
УдавВПопугаях
24.11.21
✎
10:22
|
(19) копия обычно для разработчика, не надо нажимать тупо кнопки и все, а в консоли галка с блокировкой регламентных
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |