Защита входа в 1С

Как защитить информационную базу 1С от недобросовестных пользователей?

Случалось ли Вам забывать свой пароль для входа в базу 1С? Вынуждала ли Вас жестокая судьба входить в базу 1С под пользователем, которому дано больше прав? Проявлялось ли у Вас малодушие, когда Вы входили в базу 1С под другим пользователем, чтобы никто и никогда не узнал о Вашем преступлении против родного предприятия? Тогда, думаю, Вам знакомо программное сообщение, извещающее о том, что вы неправильно ввели пароль пользователя.

Я сейчас расскажу Вам о том, как обойти пользовательский пароль, который может ограждать Вас от входа в базу 1С в большинстве случаев. Заранее замечу, что Ваш системный администратора, отвечающий за базу 1С, будет на меня обижаться, но я открою Вам сей секрет, дабы ему, ленивому, не повадно было допускать на своём предприятии произвол недобропорядочных пользователей!

Как обойти пароль для входа в базу 1С?

Чтобы войти в базу данных 1С без пароля, нужно удалить файл "users.usr", который лежит в папке "usrdef", находящейся внутри каталога с базой данных 1С. О том, как найти каталог с информационной базой данных 1С, я подробно рассказал в статье "Путь к Информационной базе".

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

Ошибка ввода пароля при входе в базу 1С
Ошибка ввода пароля при входе в базу 1С

Как установить защиту от неавторизированного входа в базу данных 1С?

Учитывая существующую проблему неавторизированного входа в базу данных 1С в типовых конфигурациях, я настоятельно рекомендую администраторам, выполняющим обслуживание баз данных 1С и следящим за сохранностью информации, установить требуемую защиту. Такая защита может быть установлена программным способом.

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

Чтобы установить проверку авторизации входа в программу 1С:Предприятие, зайдите в Конфигуратор и откройте Глобальный модуль. В него добавьте такой код:

//функция создаёт нового пользователя и устанавливает для него права
//нужна при первом входе пользователя, имеющего административные функции

Функция гПользователь_Создать();
    //права
    П=СоздатьОбъект("Справочник.Права");
    П.Новый();
    П.Наименование=ИмяПользователя();
    П.Записать();
    //пользователь
    С=СоздатьОбъект("Справочник.Пользователи");
    С.Новый();
    С.Код=ИмяПользователя();
    С.Наименование=ПолноеИмяПользователя();
    С.Право=П.ТекущийЭлемент();
    С.Записать();
    //откроем форму списка пользователей, чтобы администратор внёс в него требуемые изменения
    ОткрытьФорму("Справочник.Пользователи");
    //известим администратора о создании нового пользователя
    Предупреждение("Создан пользователь: "+ИмяПользователя()+"!",5);
    //возвратим ссылку на созданного пользователя
    Возврат С.ТекущийЭлемент();
КонецФункции

//предопределённая процедура, выполняющаяся при запуске системы 1С
Процедура ПриНачалеРаботыСистемы()
    //проверка авторизации пользователя
    Если ПустаяСтрока(ИмяПользователя())=0 Тогда
        //поиск пользователя
        С=СоздатьОбъект("Справочник.Пользователи");
        Если С.НайтиПоКоду(ИмяПользователя())=1 Тогда
            //пользователь найден
            гПользователь=С.ТекущийЭлемент();
        ИначеЕсли ПравоДоступа("АдминистративныеФункции")=1 Тогда
            //пользователь не найден, но имеет административные функции
            гПользователь=гПользователь_Создать();
        Иначе
            //пользователь не найден, поэтому вход в программу не допускается
            Текст=
            "Пользователь "+ИмяПользователя()+" не найден!
            |Работа с программой запрещена!";
            Предупреждение(Текст,5);
            ЗавершитьРаботуСистемы();
        КонецЕсли;
    Иначе
        //список пользователей не заполнен, поэтому вход в программу не допускается
        Текст=
        "Не заполнен список пользователей!
        |Работа с программой запрещена!";
        Предупреждение(Текст,5);
        ЗавершитьРаботуСистемы();
    КонецЕсли;
КонецПроцедуры

Теперь ни одна зараза не сможет зайти в базу, удалив файл пользователей! Впрочем, как говорится, если один человек что-то создал, то другой человек завсегда это сломать сможет. Так ведь? Но мы с вами, уважаемый администратор, будем искренне верить, что наши тупые юзеры на самом деле являются такими же тупыми, какими мы их считаем. Договорились? А потому они никогда не додумаются, как обойти защиту, о которой я рассказал в этой статье.

Эпилог

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

Реклама:
Смотрите также:
Функции и процедура Глобального модуля
Документы для реализации материальных ценностей
Автоматическое создание договора поставки