|   |   | 
| 
 | Как запретить тестовой базе 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) копия обычно для разработчика, не надо нажимать тупо кнопки и все, а в консоли галка с блокировкой регламентных     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |