Проверялось на: Win 2000 Server, SQL Server 2000, 1C 18 релиз
Данная статья является дополнением к статье «Первые шаги«,
в которой было рассказано как по шагам произвести установку 1С, SQL Server,
а также как произвести конвертацию вашей DBF базы. В этой статье будут подробно
рассмотрены варианты подключения к SQL Server, вопросы безопасности, а также
способ, позволяющий подключаться 1С в режиме авторизации Windows.
При установке SQL Server (либо после его установке) необходимо выбрать режим
подключения (аутентификации, авторизация) пользователей к SQL Server. Для этого
как в SQL Server 7.0 так и SQL Server 2000 существует два режима: смешанный
и авторизация Windows. Вообще-то 1С поддерживает только смешанный способ подключения*.
Причиной этого является довольно частое появление следующей ошибки: Login failed
for user ‘%ls’. Reason: Not associated with a trusted SQL Server connection.
Для 1С это сообщение означает, что вы выбрали способ авторизации Windows — в
своих методических материалах в этом случае 1С рекомендует указывать смешанный
режим подключения. Рассмотрим подробно оба режима. Данная информация взята мной
из книгиљ издательства «БХВ-Петербург» ‘MS SQL Server 2000. Наиболее полное
руководство» автор Е. Мамаев, которую я вам рекомендую в качестве настольной
по SQL Server 2000.
* — на самом деле режим авторизации «Windows only»
также возможен (см. ниже по тексту раздел «1С и режимы авторизации»)
Смешанный режим подключения (Mixed Mode, SQL Server and Windows NT / 2000).
В этом режиме возможна авторизация как средствами SQL Server, так и средствами
Windows NT / 2000. Рассмотрим вариант авторизации SQL Server (режим авторизации
Windows будет рассмотрен далее).
В этом режиме авторизация пользователей производится самим SQL Server. Вся
информация о пользователях хранится в системной базе Master. Для каждого пользователя
указывается имя учетной записи, уникальный идентификатор SQL Server, пароль
и другая информация.
Авторизация SQL Server применяется в основном клиентами, для которых недоступна
регистрация в домене Windows NT. Например, пользователям Novell NetWare, Unix
и т.д. При подключении к SQL Server через Internet регистрация в домене не выполняется,
поэтому в данном случае также необходимо использовать авторизацию SQL Server.
Дополнительно к материалу книги хотел бы отметить еще один важный момент. 1С
при подключении к SQL Server может использовать только один логин. Права данного
логина (или пользователя) должны позволять 1С производить любые действия с базой
данной. Такими правами по умолчанию владеют системные администраторы, а также
владельцы базы данных. Чтобы уменьшить риск разрушения данных в других базах,
стоит выбирать в качестве такого логина именно владельца базы данных. Если,
по причине нарушения безопасности, с базой данных 1С что-то и случится, то это
не коснется остальных баз данных, которые управляются данным сервером. Как назначить
базе владельца базе данных рассказано в этой статье.
Режим подключения Windows (Windows Authentication Mode, Windows
NT / 2000 only)
При авторизации Windows подлинность пользователя проверяется операционной системой.
Пользователь автоматически получает права доступа к данным SQL Server сразу
же после регистрации в домене. Такой метод предоставления доступа называется
установлением доверительного соединения.
Важно! Доверительное соединение в SQL Server 2000 поддерживается только при
наличии сетевых библиотек Multiprotocol и Named Pipes.
Операционная система работает с учетными записями (logins), которые содержат
все данные о пользователе. Каждая такая запись имеет уникальный идентификатор
(login ID) или, как его называют по-другому, идентификатор безопасности (SID,
Security Identification), с помощью которого пользователь регистрируется в сети.
Аутентификация Windows NT предусматривает сохранение в системной базе данных
Master в SQL Server 2000, только идентификационного номера учетной записи. Остальная
информация хранится в базе данных домена. Изменение имени пользователя или его
пароля никак не отразится на правах доступа к SQL Server.
Информация об учетной записи считывается SQL Server только при регистрации.
Поэтому изменения, которые администратор произвел с ней, отразятся только во
время очередной регистрации.
Авторизация Windows NT дает определенные преимущества. На пользователях автоматически
отражаются все правила политики безопасности, установленные в домене. Также
этот режим упрощает управление правами доступа при наличии нескольких серверов
SQL Server. При выполнении запросов на несколько серверов не нужно производить
отображение логинов SQL Server.
При авторизации Windows NT следует следить за доверительными отношениями. Если
пользователь одного домена подключается к SQL Server в другом домене, то между
этими доменами должны быть настроены доверительные отношения.
Если в вашей сети большое количество пользователей, то удобнее будет предоставлять
доступ к SQL Server не каждому пользователю, а группе пользователей выбранного
домена.
На этом завершим рассмотрение режимов авторизации.
Ссылки по теме.
Enterprise Manager
Server — Properties — Security (выбор режима авторизации)
Server — Security — Loginsљ (управление учетными записями сервера)
Server — Databases — Database — Users (управление пользователями базы данных)
Books Online
Installing SQL Server — Authentication Mode (выбор режима авторизации: коротко)
Administering SQL Server — Managing Security (управление безопасностью)
Administering SQL Server — Managing Security — Authentication Modes (режимы
авторизации: подробно)
1С и режимы авторизации
Как я уже говорил, 1С может подключаться к SQL Server только в случае смешанного
режима авторизации. Вернее только этот режим поддерживается при подключении
к SQL Server по протоколу TCP/IP. Рассмотрим чем это обусловлено. Прежде всего,
подключение возможно только через одну учетную запись, которая указываетсяљ
в режиме «Конфигуратор» через меню «Администрирование — Параметры базы данных
SQL:». Причем данные поля должны быть обязательно заполнены — иначе выдается
сообщение об ошибке (по крайней мере, в 18 релизе это так). В то же время 1С,
используя ODBC, создает подключение с помощью функции SQLDriverConnect и для
этого передает строку подключения следующего вида:
DRIVER=SQL Server;SERVER=%s;UID=%s;PWD=%s;DATABASE=master;APP=1CV7;UseProcForPrepare=0
Вместо символов %s подставляются имя сервера, пользователь и пароль. Но для
подключения в режиме авторизации Windows необходима строка подключения:
DRIVER=SQL Server;SERVER=%s;Trusted_connection=yes;DATABASE=master;APP=1CV7;UseProcForPrepare=0
Поэтому любое имя пользователя, указанное в конфигураторе приведет к ошибке
с кодом 18452, которая была приведена выше. Может быть и можно сделать так,
чтобы введенное имя пользователя было связано с доверительным соединением. Например,
я пробовал записать имя пользователя вместе с доменом — не получилось — выдавалась
та же ошибка. Но все равно эти действия не имеют смысла — основная цель авторизации
Windows подключение РАЗНЫХ пользователей, но никак не всех под одним логином.
Это ограничение можно было бы обойти, если бы в параметрах базы можно было бы
указывать пустые параметры. Но как я уже писал выше это не возможно. Здесь мы
подходим вплотную к решению проблемы. Мы знаем какую функцию 1С используется
для подключения к SQL Server, какая при этом формируется строка и какая строка
нам нужна. Эврика! — мы просто меняем эту строку, а находится она в файле bkend.dll.
Заменяем ее на строку:
DRIVER=SQL Server;SERVER=%s;UID=;PWD=; DATABASE=master;APP=1CV7;UseProcForPrepare=0
Важно чтобы длина строки оставалась прежней и чтобы она начиналась в файле
с того же смещения. Для этого перед словом DATABASE добавляем 4 пробела. Вуаля!
Теперь вы можете поставить авторизацию Windows и наслаждаться. Можно делать
такие вещи!љ — аж дух захватывает! Самый простой пример, ограничение определенным
пользователям доступа к некоторым таблицам. Дальше дело за вашей фантазией!
Но это еще не все. Данную строку можно переписать по-другому:
DSN=DNS1C; DATABASE=master;APP=1CV7;UseProcForPrepare=0
Опять же нужно соблюсти смещения начала и конца строки. Данная строка позволяет
подключаться к SQL Server через источник данных, настроенный на клиенте. Этот
способ немного сложнее (нужно настраивать источника на каждом клиенте), но с
помощью него можно решить другую проблему — хранение пароля подключения не в
файле DBA (который как известно довольно легко расшифровывается), а хранение
его средствами операционной системы. Для этого в конфигураторе нужно просто
задать имя пользователя, а пароль оставить пустым — теперь-то он хранится в
другом месте! Вуаля очередной раз. Плюс небольшой P.S. — в документации для
SQL Server 2000 написано, что указание Trusted_connection обязательно, но я
проверил это на своей системе — предыдущий метод сработал. Если у вас он работать
не будет, то придется использовать данный метод.
Когда будете создавать новых пользователей, то у них не будет никаких прав
на данные в базе 1С. Кроме того, что нужно будет выставить эти права, нужно
будет также указать роли (для SQL Server 2000, для 7.0 не знаю как): db_datareader,
db_datawriter , db_creator. Роль db_creator нужна, так как при старте 1С изменяет
некоторые параметры БД (для этого используется ХП sp_dboption, которая в свою
очередь использует команду ALTER DATABASE). При установке разрешений на доступ
к таблицам и прочая можно запариться — для этого лучше сразу написать скрипт
с применением команды GRANT для каждой таблицы, ХП и т.п. Вроде бы все. Не пробовал
подключать более двух пользователей (разных). Два одинаковых на моем домашнем
компе — работают :).
Обычным образом (то есть без использования хакерских методов) 1С может подключаться
в режиме аворизации Windwos только (а может и не только) по протоколу Named
Pipes. В этом случае система просто игнорирует имя пользователя и пароль, передаваемые
при соединении. Почему это не делается в случае протокола TCP/IP для меня является
загадкой. Чтобы такое подключение было возможно желательно, чтобы на сервере
был установлен только протокол Named Pipes, либо чтобы он стоял первым в списке
в утилитах SQL Server по настройке сетевых протоколов на клиенете и сервере.
Если вам это не поможет (так, например, случилось со мной), то нужно просто
создать алиас (в SQL Server 2000) с помощью утилиты Client Network Utility,
указав что соединение будет производится по протоколу Named Pipes. После этого
имя алиаса можно использовать в качестве имени SQL Server и без проблем работать
по протоколу Named Pipes. Но. Есть большое «Но» в этом варианте. Использование
протокола Named Pipes не рекомендуется по причине его низкой производительности.
За мой срок работы с SQL Server я слышал разные комментарии по этому поводу
большая часть из них подтверждала это, хотя были и противоположные замечания,
в которых указывалось, что использование Named Pipes не снижает производительность
работы с SQL Server. Хорошо бы найти четкие экспериментальные подтверждения
этому и желательно авторитетные, для меня пока это лишь теоретические предположения.
Под конец хочу дать вам ссылку на еще одну интересную методику. Здесь
вы найдете более красивое решение проблемы безопасности, которое не использует
хак 1С (в прямом его смысле). Кроме того, этот метод позволяет более гибко настроить
ограничения доступа к данным, причем так, что 1С при этом не будет «падать»
(если вы будет пользоваться обычной методикой ограничения прав доступа, то 1С
при попытке доступа будет «вываливаться» с сообщением об ошибке доступа к данным).
За сим прощаюсь. Безопасных Вам связей!
Шемякин Павел, июль 2002 оригинал на http://1csql.virtualave.net/1csql/
Подключение к SQL с Windows авторизацией
☑
0
Бовка
15.07.14
✎
13:26
Всем привет!
Не могу победить проблему. Есть SQL Server 2008 R2 с установленной Win авторизацией. Поставить смешанную авторизацию нельзя по определенным причинам. Мне нужно оттуда смотреть вьюху. Подскажите, умеет ли 1С 8.2 подключаться с скулю с таким режимом авторизации?
В поиске есть устаревшие сведения, что не умеет, но может что-то поменялось уже.
Спасибо!
1
ДенисЧ
15.07.14
✎
13:26
Как собираешься подключаться?
2
Бовка
15.07.14
✎
13:29
(1) Пробовал через внешние источники данных, стандартным драйвером SQL, не работает
3
Fish
15.07.14
✎
13:30
4
Бовка
15.07.14
✎
13:35
(3) Это не совсем то, мне нужен коннектор из базы к стороннему скулю.
5
ДенисЧ
15.07.14
✎
13:40
(4) Подключись по ADO
6
oleg_km
15.07.14
✎
13:57
(2) Что именно не работает? Что такое «стандартным драйвером SQL»?
7
Бовка
15.07.14
✎
15:16
(6) Вот такая конструкция не работает
СтрокаПодключения = «Provider=SQLOLEDB.1″+
«;Persist Security Info=True»
«;UID=domain_name\sp_admin»+
«;Pwd=»+
«;Data Source=sql_name\instance_name»+
«;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=;Use Encryption for Data=False;Tag with column collation when possible=False;»+
«Initial Catalog=master;»;
Подключение = Новый COMОбъект(«ADODB.Connection»);
Ошибка: Ошибка входа пользователя «domain_name\sp_admin».
8
ДенисЧ
15.07.14
✎
15:23
(7) Убери UID и PWD, и поставь Trusted Connections=Yes
И запускай на клиенте
9
Бовка
16.07.14
✎
10:57
(8) Это не работает для случая, когда нужно запустить коннект под другим доменным пользователем. У меня как раз такой случай.
Реально ли вообще поднять коннект, указав данные другой доменной учетки?
10
ДенисЧ
16.07.14
✎
10:59
Именно доменной?
А у неё, этой учётки, есть право на доступ?
11
Бовка
16.07.14
✎
11:00
(10) Да, под SSMS все запускается норм
12
oleg_km
16.07.14
✎
11:21
(9) Реально, но не очень. UID= ;Pwd= задействуются только при скулевой авторизации. Если нужна доменная авторизация, то нужно сначала имперсонировать вызывающий процесс под учетку нужного пользователя, а потом дернуть ADO с опцией Trusted Connections=Yes. И то, можно нарваться на делегирование. Поэтому я советую сделать на скуле спецучетку для твоей программы и подключаться с опциями UID= ;Pwd=.
13
ChiginAV
16.07.14
✎
11:27
(0) Подключение = Новый COMОбъект(«ADODB.Connection»);
Подключение.Open(«driver={SQL Server};server=SrvName;database=DBName;UserID=Domain\User;pwd=Password»);
14
oleg_km
16.07.14
✎
11:37
(13) Сам так пробовал?
15
ChiginAV
16.07.14
✎
11:59
(14) Да
16
oleg_km
16.07.14
✎
12:15
(15) Вообще-то:
User ID
-или-
UID
-или-
Неприменимо
Учетная запись входа SQL Server. Не рекомендуется. Чтобы обеспечить наивысший уровень безопасности, настоятельно рекомендуется использовать вместо этого ключевое слово Integrated Security или Trusted_Connection. SqlCredential более безопасный способ определения учетные данные для подключения с использованием проверки подлинности SQL Server.
Длина ИД пользователя должна быть 128 символа или меньше.
Integrated Security
-или-
Trusted_Connection
false
Если задано значение false, в подключении заданы также параметры User ID и Password. Если задано значение true, для проверки подлинности используются текущие учетные данные Windows.
Распознаваемые значения: true, false, yes, no и sspi (настоятельно рекомендуется), что эквивалентно true.
Если ИД пользователя и пароль заданы и встроенные средства безопасности установлено значение «true», ИД пользователя и пароль будут проигнорированы, и использована встроенная безопасность.
http://msdn.microsoft.com/ru-ru/library/system.data.sqlclient.sqlconnection.connectionstring(v=vs.110).aspx
17
Бовка
16.07.14
✎
12:19
(12) Как выход из этой ситуации я вижу только написание ВК, в которой будут сконфигурированы нужные параметры под нужным пользователем. Из самой 1С запустить под другим доменным пользователем не получится, ну или как вариант, да, имперсонировать процесс 1С под учетку нужного пользователя.
(13) так не работает, проверено не раз!
18
ChiginAV
16.07.14
✎
12:24
(16),(17) Во всяком случае, код в (13) отрабатывает без исключений
19
oleg_km
16.07.14
✎
12:30
(18) Я посмотрел в отладчике, в коллекции Errors появляется ошибка ошибочные параметры, а в строке очищаются User ID и Password. Т.е. ADO молча исправляет эту ошибку.
(17) Ну если так проще, то флаг в руки. Может тогда запустить весь процесс 1С под другим пользователем например через Runas или WMI, через параметры указать, чтобы отработал нужную процедуру, которая дернет скуль?
Добавление новых информационных баз в 1С:Предприятие является типовой задачей для многих специалистов.
Информационные базы можно добавлять несколькими способами:
- Через администрирование серверов 1С
Рисунок 1 – “Новая информационная база через администрирование серверов”
- Через 1С:Предприятие
Рисунок 2 – “Добавление информационной базы через 1С:Предприятие”
Поля для заполнения при этом идентичные.
В данной инструкции мы обратим внимание на поля “Пользователь базы данных” и “Пароль пользователя”.
Чаще всего вписывают пользователя sa или же делают отдельную учетную запись в MSSQL с назначением прав “sysadmin”, что является нарушением с точки зрения безопасности.
Опишем один из вариантов добавления пользователя для базы данных в MSSQL.
При установке сервера 1С по умолчанию создается пользователь USR1CV8 с нужными для работы службы 1С правами.
Мы же этого пользователя дополнительно добавим для работы с базами данных 1С.
Для этого:
- Заходим в MSS Management Studio для управления СУБД MSSQL.
- Переходим в “Безопасность” => нажимаем ПКМ “Имена для входа” и выбираем “Создать имя для входа”.
- Попадаем в оснастку “Создание имени для входа”.
- Нажимаем “Найти” и выбираем учетную запись USR1CV8 или учетную запись от которой запущена служба Агент-сервера 1С:Предприятия 8.3 (x86-64) и нажимаем “ОК”.
- Переходим во вкладку “Роли сервера”, разрешаем dbcreator и public.
- Переходим во вкладку “Сопоставление пользователей” и ставим галки в таблице “Схема” напротив требуемых баз, включая и системных (master, model, msdb, tempdb) и отмечаем членство public и db_owner. Нажимаем “ОК”.
- Пользователь с нужными правами добавлен, теперь можем создавать новые информационные базы без добавления “Пользователь базы данных” и “Пароль” (как на рис. 3).
Рисунок 3 – “Создание информационной базы с учетной записью службы 1С Сервера”
1С:Предприятие — популярная и универсальная платформа как в бизнесе, так и в государственном секторе. Миллионы людей ежедневно используют ее для автоматизации операционной, бухгалтерской, финансовой, кадровой и управленческой деятельности.
Что такое клиент-серверная 1С
Платформа 1С может использовать два варианта работы:
Файловый. Обработка и хранение всех данных происходит на одном локальном компьютере, т.е. без дополнительных серверов и программных продуктов. Такой вариант подходит для тестового или персонального использования и не рекомендуется для работы с реальными проектами.
Квиз: один день из жизни дежурного инженера в дата-центре
Клиент-серверный. Наиболее распространенный вариант. Здесь в архитектуру входят клиентское приложение, кластер серверов 1С и сервер базы данных. Пользователи могут разместить кластеры серверов 1С и серверы БД как на отдельных устройствах, так и на одной машине.
Пользователь взаимодействует с клиентским приложением, представляющим из себя графический интерфейс. При работе с ним формируются запросы, требующие обработки. Эти запросы отдаются на выполнение кластеру серверов 1С, который может обратиться к СУБД для работы с данными. После выполнения запроса полученные результаты поступают обратно пользователю в клиентское приложение.
Клиент-серверный вариант работы может использовать сторонние СУБД, поддерживаемые 1С: Microsoft SQL Server, PostgreSQL, IBM DB2 и Oracle Database. Они более мощные, быстродействующие и защищенные по сравнению со встроенной в 1С файловой СУБД.
На данный момент чаще всего для работы с 1С используется Microsoft SQL Server. Далее мы рассмотрим установку и настройку 1С в клиент-серверном режиме с использованием именно этой СУБД.
Когда стоит переходить на клиент-серверный вариант
Файловый вариант работы 1С накладывает некоторые ограничения и неудобства.
- Ограничение: размер одной таблицы не более 4 Гб. При приближении размера таблицы к этому значению количество зависаний БД увеличится. А при превышении лимита таблица перестанет открываться.
- Рекомендация: размер всей БД не более 10 Гб. Базы данных, превышающие указанное значение, начинают чаще зависать.
- Рекомендация: количество одновременно работающих пользователей не более пяти человек. При увеличении их числа возрастает и количество обращений к БД. Это негативно сказывается на времени выполнения операций и общей скорости работы базы данных.
Если описанные выше ограничения и рекомендации не выполняются, то для корректной и удобной работы с платформой следует перейти на клиент-серверный вариант использования 1С.
Установка 1С на сервер
В данном примере рассмотрим клиент-серверный вариант работы 1С. Для этого мы подготовили следующую инфраструктуру:
- сервер для установки «1С: Предприятие 8.3» с ОС Windows Server 2022;
- сервер для установки СУБД MS SQL с ОС Windows Server 2022.
Подготовка ОС
После установки Windows Server и до того, как на серверы будет установлено дополнительное ПО, следует настроить операционную систему.
Включите сетевое обнаружение
Чтобы серверы могли обнаружить друг друга в одной локальной сети, включите сетевое обнаружение на каждом из них:
Параметры -> Сеть и Интернет -> Ethernet -> Изменение расширенных параметров общего доступа.
Проверить доступность серверов можно командой ping [ip_address].
Откройте порты на серверах
Порт 1433 используется для доступа к базам данных SQL Server. Чтобы сервер 1С имел доступ к базе данных, необходимо открыть этот порт для TCP-подключения на сервере MS SQL:
Брандмауэр Защитника Windows -> Дополнительные параметры -> Правила для входящих подключений -> Создать правило…
Выберите:
- тип правила: для порта;
- протоколы и порты: протокол TCP / порт 1433;
- действия: разрешить подключения;
- профиль: доменный, частный и публичный;
- имя: MS SQL.
Откройте порт 1434 для UDP-подключения на сервере MS SQL. Данный порт используется для работы Browser SQL Server.
Если для работы с 1С пользователи будут подключаться с других устройств в сети, на сервере кластера 1С необходимо открыть порты 1541 и 1560-1591 для TCP-подключения.
Установите Microsoft SQL Server Native Client
Если сервер 1С и сервер SQL расположены на разных устройствах, то на сервер кластера 1С необходимо установить SQL Server Native Client для корректного подключения 1С к MS SQL.
- Скачайте установщик Microsoft SQL Server Native Client с официального сайта.
- Запустите установщик Microsoft SQL Server Native Client.
- На этапе «Выбор компонентов» включите в установку параметр «Клиентские компоненты» и нажмите «Далее».
- Нажмите кнопку «Установить» и дождитесь завершения установки.
Установка MS SQL
Если у вас нет установочного файла SQL Server, скачайте его на официальном сайте разработчика. Затем запустите файл SQL2022-SSEI-Dev.exe (версия может отличаться).
Выберите тип установки. Мы воспользуемся скачиванием носителя.
Откройте скачанный ISO-файл и запустите setup.exe. Во вкладке «Установка» нажмите «Новая установка изолированного экземпляра…»
Выберите удобный вариант установки обновлений и нажмите «Далее».
На этапе «Правила установки» правило «Брандмауэр Windows» может быть в состоянии «Предупреждение». Несмотря на это, установка пройдет успешно, выключать брандмауэр не обязательно. Нажмите «Далее».
Типом установки выберите «Выполнить новую установку SQL Server» и нажмите «Далее».
На этапе «Выпуск» выберите вариант лицензирования. Мы устанавливаем параметр «Укажите бесплатный выпуск: Developer», который предназначен для разработчиков с целью некоммерческого использования.
Ознакомьтесь с условиями лицензии и установите флаг в поле «Я принимаю условия…». Нажмите «Далее».
Снимите выделение с пункта «Расширения Azure для SQL Server» и нажмите «Далее».
На этапе «Выбор компонентов» выберите «Службы ядра СУБД» и нажмите «Далее».
Выберите «Экземпляр по умолчанию» и нажмите «Далее».
«Именованный экземпляр» выбирается в случае, если на сервере уже существуют иные экземпляры.
В разделе «Конфигурация сервера» проверьте следующее.
- На вкладке «Учетные записи служб» установлен флаг «Предоставить привилегию выполнения задач…» и для записей «Агент SQL Server» и «Ядро СУБД SQL Server» установлен «Тип запуска: Авто».
- На вкладке «Параметры сортировки» указан параметр «Cyrillic_General_CI_AS».
Нажмите «Далее».
На этапе «Настройка ядра СУБД» на вкладке «Конфигурация сервера»:
- выберите «Смешанный режим»;
- укажите пароль для администратора MS SQL;
- добавьте пользователя, который будет администрировать SQL Server.
Мы добавим текущего пользователя соответствующей кнопкой.
На вкладке «Каталоги данных»:
- «Корневой каталог» можно оставить по умолчанию;
- «Каталог пользовательской базы данных» и «Каталог журналов пользовательской базы данных» лучше распределить на разные диски (в случае использования HDD, а не SSD);
- на дисках необходимо создавать соответствующие папки (а не указывать корень диска), иначе может возникнуть ошибка при установке SQL Server.
На вкладке «MaxDOP» 1С рекомендуем выставлять значение «1» в поле «Максимальная степень параллелизма».
На вкладке «Память» выберите «Рекомендуется». Установите флаг в поле «Щелкните здесь, чтобы принять рекомендуемые конфигурации…»
Нажмите «Далее».
Проверьте правильность выбранных параметров и нажмите «Установить». Затем дождитесь окончания установки и нажмите «Закрыть».
Повторно откройте «Центр установки SQL Server» и нажмите «Установить средства управления SQL Server». Произойдет переадресация на сайт разработчика, где вы можете скачать установочный файл, выбрав необходимый язык в разделе «Доступные языки».
Примечание: SSMS является необязательной утилитой, но позволяет удобно управлять службой MS SQL с помощью графического интерфейса.
Запустите установочный файл SSMS-Setup-RUS.exe. Выберите путь для установки и нажмите «Установить». Дождитесь окончания установки и нажмите «Закрыть».
Запустите установленную программу «Microsoft SQL Server Management Studio». В окне «Соединение с сервером» выберите следующие параметры.
- Тип сервера: Ядро СУБД.
- Имя сервера: выберите имя SQL-сервера.
- Проверка подлинности: Проверка подлинности Windows.
Нажмите «Соединить».
Настройка MS SQL
Настройте сервер
Чтобы серверы 1С и SQL могли обмениваться данными, включите использование протокола TCP/IP в оснастке «SQL Server Configuration Manager» в разделе «Сетевая конфигурация -> Протоколы для *Название сервера*»
Примечание: если ваши серверы 1С и MS SQL настроены на одном устройстве, вместо TCP/IP включите параметр Shared Memory.
Подробнее о Shared Memory расскажем в разделе «Оптимизация и тонкая настройка Сервера 1С:Предприятие».
Чтобы работать с MS SQL из 1С с помощью пользователя sa, необходимо настроить проверку подлинности.
Откройте Microsoft SQL Server Management Studio.
Подключитесь к вашему серверу, используя проверку подлинности Windows и учетную запись администратора.
Нажмите правой кнопкой мыши по названию сервера в окне «Обозреватель объектов» и выберите «Свойства».
- На вкладке «Безопасность» выберите «Серверная проверка подлинности: Проверка подлинности SQL Server и Windows».
Далее выполните настройку памяти сервера MS SQL. Для этого в свойствах сервера перейдите на вкладку «Память» и установите для параметра «Максимальный размер памяти сервера» максимально допустимое значение.
Настройте базы данных
Находясь в свойствах сервера MS SQL, откройте вкладку «Параметры базы данных». Установите указанные параметры.
- Сжимать резервные копии: активировать флаг;
- Места для хранения, используемые базой данных по умолчанию: укажите удобные пути хранения для всех типов записей.
Когда вы создадите базу данных, вам нужно будет в ее свойствах на вкладке «Файлы» установить для всех файлов параметр «Автоувеличение/максимальный размер». Как это сделать, показали на скриншоте.
При наличии нескольких файлов баз данных рекомендуем создать для них хранилища на разных дисках. Это можно сделать, изменив путь хранения данных в «Свойства базы данных -> Файлы -> Путь».
Чтобы файл журнала транзакций не разрастался, установите простую модель восстановления в «Свойства базы данных -> Параметры -> Модель восстановления».
Настройте регламентные задания
Настройка автоматического обновления статистик. Планировщик запросов в MS SQL Server опирается на статистическую информацию о распределении значений в индексах и таблицах для построения плана выполнения запроса. Эта информация создается на основе выборочных данных и автоматически обновляется при изменениях в данных.
Иногда этого недостаточно для формирования оптимальных планов выполнения всех запросов. Для максимальной эффективности оптимизатора рекомендуем обновлять статистику базы данных не реже раза в сутки.
- Создайте новый план обслуживания в Microsoft SQL Server Management Studio с именем «Базовый».
- Добавьте вложенный план с именем «Обновление статистик» и выполнением по расписанию каждый день в 23:00.
- Добавьте во вложенный план «Обновление статистик» задачу Update Statistics Task из панели задач.
Очистка процедурного кеша. Оптимизатор в MS SQL Server сохраняет планы запросов в кеше для повторного использования. Это позволяет сэкономить время на повторной компиляции запроса, если аналогичный запрос уже выполнялся и его план известен.
Возникает сценарий, при котором MS SQL Server может построить неоптимальный план запроса, основываясь на устаревшей статистической информации. Этот план сохраняется в процедурном кеше и применяется при последующем выполнении того же запроса. Если вы обновили статистику, но не очистили процедурный кеш, SQL Server может использовать старый, неоптимальный план запроса вместо формирования нового, более оптимального.
Рекомендуем всегда очищать содержимое процедурного кеша после обновления статистики.
- Откройте вложенный план с именем «Обновление статистик».
- Добавьте во вложенный план «Обновление статистик» задачу Execute T-SQL Statement Task.
- Соедините задачу Update Statistics Task с новой задачей с помощью стрелочки.
- В задаче Execute T-SQL Statement Task напишите запрос: DBCC FREEPROCCACHE.
- Сохраните результат действий.
Таким образом можно составлять различные планы регламентных заданий, используя встроенные задачи и самописные SQL-функции.
Установка платформы 1С
Запустите установщик 1С:Предприятие 8.3.
На этапе «Выборочная установка» выберите компоненты.
- Обязательно: 1С:Предприятие 8.
- Необязательно: 1С:Предприятие — Тонкий клиент.
- Необязательно: 1С:Предприятие — Тонкий клиент, файловый вариант.
- Обязательно: Сервер 1С:Предприятие 8.
- Необязательно: Модули расширенного веб-сервиса.
- Обязательно: Администрирование сервера 1С:Предприятия.
Примечание: перечень компонентов может отличаться в зависимости от дистрибутива. В нашем примере мы установим все указанные компоненты.
Выберите путь для установки программы и нажмите «Далее».
На этапе «Язык интерфейса по умолчанию» выберите удобный для вас язык.
На этапе «Установите сервер 1С:Предприятие 8 как сервис Windows»:
- установите флаг в поле «Установить сервер 1С:Предприятие 8 как сервис Windows»;
- выберите «Создать пользователя USR 1CV8» и укажите пароль.
Нажмите «Далее».
На этапе «Программа готова к началу установки» нажмите «Установить».
Примечание: если возникает предупреждение «Ошибка при запуске службы “Агент сервера 1С:Предприятие”…» вручную запустите указанную службу из консоли управления службами и нажмите «Пропустить» в окне ошибки.
В окне «Установка драйвера защиты»:
- активируйте флаг «Установить драйвер аппаратных ключей защиты», если используются аппаратные ключи;
- установите флаг «Отключить неиспользуемые 1С:Предприятием возможности аппаратных ключей защиты», если используются программные ключи.
Нажмите «Далее».
Завершите установку нажатием кнопки «Готово» в окне «Программа установки завершена».
Перейдите в директорию «../1cv8/version_1C/bin», где version_1C — версия устанавливаемого дистрибутива 1С и запустите файл RegMSC.bat. Данное действие зарегистрирует утилиту администрирования серверов.
Создание информационной базы 1С
Способ 1: создание из интерфейса 1С:Предприятия
Запустите платформу «1С Предприятие».
Для создания новой информационной базы нажмите кнопку «Добавить…».
В открывшемся окне выберите «Создание новой информационной базы» и нажмите «Далее».
Выберите нужный вариант создания информационной базы и нажмите «Далее».
Создание информационной базы из шаблона облегчает первоначальную настройку, так как уже содержит в себе готовое решение. В зависимости от приобретенной конфигурации 1С (например, 1С:Бухгалтерия) вам будет предоставлено несколько шаблонов с преднастроенной функциональностью.
Мы выбираем «Создание информационной базы без конфигурации…»
Далее необходимо выбрать тип расположения информационной базы.
Вариант «На данном компьютере…» создает базу в файловом режиме, а «На сервере 1С: Предприятие» — в клиент-серверном.
Выберите вариант «На сервере 1С:Предприятия» и нажмите «Далее».
Заполните поля необходимой информацией.
- Кластер серверов 1С:Предприятия: IP-адрес сервера, на котором располагается сервер 1С.
- Имя информационной базы в кластере: название новой базы. Оно должно быть уникальным в пределах одного кластера и состоять из латинских букв. Цифры разрешено использовать только в конце имени.
- Защищенное соединение: Установка соединения.
- Тип СУБД: MS SQL Server.
- Сервер баз данных: IP-адрес сервера MS SQL или его хост-имя.
- Имя базы данных: то же, что в «Имя информационной базы в кластере».
- Пользователь базы данных: sa.
- Пароль пользователя: пароль, введенный в пункте 15 раздела «Установка MS SQL».
- Смещение дат: 2000.
Установите флаг в поле «Создать базу данных в случае ее отсутствия».
Нажмите «Далее».
Укажите параметры запуска.
- Вариант аутентификации: Выбирать автоматически.
- Скорость соединения: Обычная.
- Основной режим запуска: Выбирать автоматически.
Нажмите «Готово».
Способ 2: создание БД из MS SQL
Откройте Microsoft SQL Server Management Studio на сервере MS SQL.
Подключитесь к своему серверу SQL Server.
Раскройте в обозревателе объектов свой сервер, нажмите правой кнопкой мыши по директории «Базы данных» и выберите «Создать базу данных».
В окне «Создание базы данных» в разделе «Общие» укажите следующие значения.
- Имя базы данных: укажите ваше значение.
- Владелец: оставьте <по умолчанию>.
Нажмите «ОК».
Перейдите на сервер кластера 1С и откройте оснастку «Администрирование серверов 1С Предприятия x86-64».
Раскройте дерево в левой части окна до «Информационные базы». Нажмите правой кнопкой мыши по «Информационные базы» и выберите «Создать -> Информационная база».
Введите информацию в соответствующие поля.
- Имя: введите выбранное имя.
- Защищенное соединение: Только соединение.
- Сервер баз данных: IP-адрес сервера MS SQL.
- Тип СУБД: MS SQL Server.
- База данных: введите название БД из пункта 4.
- Пользователь сервера БД: sa.
- Пароль пользователя БД: пароль пользователя ‘sa’ из пункта 15 раздела «Установка MS SQL».
- Смещение дат: 2000.
Нажмите «ОК».
Убедитесь, что информационная база добавилась в оснастку.
Откройте платформу «1С Предприятие» и нажмите «Добавить».
На этапе «Добавление информационной базы в список» выберите «Добавление в список существующей информационной базы».
Заполните соответствующие поля.
- Наименование информационной базы: Ваше наименование.
- На сервере 1С:Предприятия: укажите IP-адрес сервера кластера 1С и имя информационной базы.
Нажмите «Далее».
На этапе «Укажите параметры запуска» выберите варианты.
- Вариант аутентификации: Выбирать автоматически.
- Основной режим запуска: Выбирать автоматически.
- Версия 1С:Предприятия: 8.3.
Нажмите «Готово».
Установка сервера лицензирования СЛК
Сервер СЛК позволяет управлять лицензиями, получать доступ к ключам защиты или лицензионным объектам. Данная служба поддерживает работу как с программными, так и с аппаратными лицензиями для нескольких продуктов одновременно.
Преимущества использования сервера лицензирования:
- не нужно активировать лицензии на каждом из серверов, так как они централизованы в СЛК;
- при пересборке кластера нет необходимости повторно активировать лицензии;
- изменение конфигурации сервера не повлечет за собой необходимость заново получать лицензию, так как она привязана к отдельному серверу.
Установите сервер лицензирования
Скачайте актуальную версию Центра лицензирования СЛК с официального сайта разработчика. В нашем случае «СЛК 3.0: Комплект для конечного пользователя 3.0.34.11319». На этой же странице можно ознакомиться с руководством администратора и дополнительными инструкциями.
В скачанном архиве откройте licenceserver-3.0.34.11319.zip и запустите файл licenceserver-3.0.34.11319.win.exe.
Оставьте параметры по умолчанию и нажмите «Установить».
После завершения установки будет предложение открыть консоль сервера СЛК.
Администрирование сервера СЛК выполняется с помощью веб-приложения, которое по умолчанию доступно по локальному адресу http://localhost:9099
Установка лицензий СЛК осуществляется на вкладке «Установка лицензий».На данной странице укажите:
- код, состоящий из 20 цифр;
- ИНН организации;
- место установки лицензии.
Оптимизация и тонкая настройка Сервера 1С:Предприятие
Режим Shared Memory
Режим Shared Memory использует возможности оперативной памяти и предназначен для того, чтобы кластер серверов 1С и SQL Server могли обмениваться данными с более высокой скоростью, находясь на одном и том же устройстве.
Включить данную функциональность можно в оснастке SQL Server Configuration Manager. Для этого в разделе «Сетевая конфигурация» откройте пункт «Протоколы для *Название сервера*», выберите «Имя протокола -> Общая память» и включите его.
Настройка кластера 1С:Предприятие
Кластер — это логическое объединение нескольких физических или виртуальных серверов, которые работают с одними информационными базами.
Настройка кластера — это настройка всех серверов, принадлежащих данному кластеру. Ее можно выполнить, открыв свойства Локального кластера в оснастке «Администрирование серверов 1С Предприятия x86-64».
Можно настроить следующие параметры кластера.
- Интервал перезапуска – время, через которое перезапускаются рабочие процессы.
- Допустимый объем памяти и интервал превышения допустимого объема памяти – если какой-либо процесс превышает допущенный объем памяти в течение определенного времени, он принудительно перезапускается.
Платформа считает среднее количество ошибок сервера по отношению к числу обращений к серверу в течение пяти минут. Если установлен флаг «Принудительно завершать проблемные процессы», то процесс, превысивший допустимое значение ошибок, будет завершен системой.
- Выключенные процессы останавливать через — данный параметр регулирует время, через которое выключенный процесс завершится. Процесс, находящийся в статусе «выключенный», не завершается сразу, а остается включенным до момента окончания переноса с него данных, либо до момента принудительного завершения.
- Уровень отказоустойчивости — количество серверов, которые могут неожиданно отключиться и завершить сеансы пользователей. В зависимости от указанного числа кластер автоматически будет определять объем ресурсов, требуемых на синхронизацию между рабочими серверами.
- Режим распределения нагрузки:
- Приоритет по производительности — тратится больше памяти сервера, в связи с чем возрастает производительность.
- Приоритет по памяти — кластер 1С экономит память сервера.
Настройка сервера 1С:Предприятие
Настройка сервера подразумевает собой установку лимитов и степеней резервирования памяти каждого отдельного сервера 1С. Эти настройки устанавливаются для каждого сервера отдельно.
- Максимальный объем памяти рабочих процессов — объем памяти, который могут занять все рабочие процессы данного кластера на сервере. Значение «0» означает, что процесс может потреблять до 80% ОЗУ сервера. «1» — без ограничений.
- Безопасный расход памяти за один вызов — ограничение объема памяти, который будет занят при выполнении серверного вызова на данном сервере. Значение «0» означает, что объем безопасного расхода ОЗУ будет равен 5% от «Максимального объема памяти рабочих процессов». «1» — без ограничения, выставлять это значение не рекомендуется.
- Количество ИБ на процесс и количество соединений на процесс — регулировка количества рабочих процессов на данном сервере.
- Менеджер под каждый сервис — запуск каждого сервиса менеджера кластера как отдельный процесс.
Заключение
1С является популярным средством автоматизации процессов. Конфигурации могут быть доработаны и адаптированы под специфику любого бизнеса, что делает платформу универсальной. Но чтобы пользователи могли успешно работать с 1С, администратору следует выполнить корректную установку и настройку всех необходимых компонентов виртуальной инфраструктуры.
Основываясь на материалах этой статьи, вы сможете установить и выполнить настройку серверов 1С и MS SQL на Windows Server.
1c:setting-up-microsoft-sql-server-for-1c-enterprise-8-3:creating-sql-logins-for-1c-databases
Создание SQL-логинов для баз дынных 1С:Предприятие
Так как сервер 1С:Предприятие 8.3 не умеет использовать Windows–аутентификацию при подключении к базе данных SQL Server (именно по этой причине в процессе установки SQL Server мы выбирали режим смешанной аутентификации Mixed Mode), нам потребуется на стороне SQL Server создать отдельный SQL-логин с назначением ролей public и dbcreator
При этом, исходя из соображений безопасности, для каждой отдельной рабочей базы 1С:Предприятие желательно использовать выделенный SQL-логин.
В нашем примере созданы два SQL-логина base1dbo
и base2dbo
для двух разных баз, которые мы в дальнейшем будем создавать из консоли сервера 1С:Предприятие 8.3.
При создании SQL-логинов для 1С желательно будет отключить политику управления паролями в SQL Server (опция Enforce password policy), чтобы избежать блокировки SQL-логинов по истечению срока действия их пароля.
Проверено на следующих конфигурациях:
Версия ОС | Версия SQL Server |
---|---|
Microsoft Windows Server 2012 R2 Standard EN (6.3.9600) | Microsoft SQL Server 2016 SP2 CU4 (13.0.5233.0) |
Автор первичной редакции:
Алексей Максимов
Время публикации: 13.02.2019 12:35