Перейти к содержанию

Порядок настройки сервера SQL1C: различия между версиями

Материал из Wiki Sestrica
Новая страница: «# ... # ... # Настройка брандмауэра ## "1C server" для порта по списку: 1540, 1541, 1560-1591»
 
Нет описания правки
 
(не показано 10 промежуточных версий этого же участника)
Строка 1: Строка 1:
# ...
# ...
# ...
# ...
# Установка SSMS: SSMS-Setup-RUS.exe /Passive DoNotInstallAzureDataStudio=1
# Настройка брандмауэра
# Настройка брандмауэра
## "1C server" для порта по списку: 1540, 1541, 1560-1591
## "1C server" для порта по списку: 1540, 1541, 1560-1591 (доступ к 1с-серверу с RDP-сервера).
## "MSSQL" для порта 1433 (доступ к SQL извне).
# Регистрация 1С COM-компоненты:
## ...
# Удалить AzureArc: Disable-WindowsOptionalFeature -Online -FeatureName AzureArcSetup
# Для создания плана обслуживания в SSMS:
{{CollapseCode|title=Выполнить запрос|content=
-- Включаем отображение расширенных параметров
EXEC sp_configure 'show advanced options', 1; 
GO 
RECONFIGURE; 
GO 
 
-- Включаем Agent XPs
EXEC sp_configure 'Agent XPs', 1; 
GO 
RECONFIGURE; 
GO
}}
## Для службы SQL Server Agent переключить режим запуска в автоматический.
# ...
# Установка КриптоПРо CSP
# Проброс в реестр нужных ЭЦП для пользователя USR1CV8
#
# Создать пользователей и прописать доступ к базам для использования в YOSO-скриптах для evgen1y8, Reader1C, TelephonyReader1C (в скрипте перед запуском поправить параметры).
{{CollapseCode|title=Выполнить запрос|content=
-- =============================================
-- Параметры (изменяйте только здесь)
-- =============================================
DECLARE @LoginName  NVARCHAR(128) = N'login_name';
DECLARE @Password  NVARCHAR(128) = N'password';
DECLARE @Databases  NVARCHAR(MAX) = N'base1,base2,base3,base4';  -- базы через запятую
 
-- =============================================
-- Основная логика (не меняйте)
-- =============================================
 
SET NOCOUNT ON;
 
DECLARE @SQL NVARCHAR(MAX);
 
-- 1. Создание логина на уровне сервера
SET @SQL = N'
USE master;
CREATE LOGIN ' + QUOTENAME(@LoginName) + N'
    WITH PASSWORD = ' + QUOTENAME(@Password, '''') + N';';
 
EXEC sp_executesql @SQL;
 
PRINT 'Логин ' + @LoginName + ' успешно создан.';
 
-- 2. Предоставление права ALTER TRACE
SET @SQL = N'GRANT ALTER TRACE TO ' + QUOTENAME(@LoginName) + N';';
EXEC sp_executesql @SQL;
 
PRINT 'Право ALTER TRACE выдано.';
 
-- 3. Обработка каждой базы данных
DECLARE @DBName NVARCHAR(128);
DECLARE @Cur CURSOR;
 
SET @Cur = CURSOR LOCAL FAST_FORWARD FOR
    SELECT TRIM(value)
    FROM STRING_SPLIT(@Databases, ',');
 
OPEN @Cur;
FETCH NEXT FROM @Cur INTO @DBName;
 
WHILE @@FETCH_STATUS = 0
BEGIN
    IF DB_ID(@DBName) IS NOT NULL
    BEGIN
        SET @SQL = N'
USE ' + QUOTENAME(@DBName) + N';
IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = ' + QUOTENAME(@LoginName, '''') + N')
    CREATE USER ' + QUOTENAME(@LoginName) + N' FOR LOGIN ' + QUOTENAME(@LoginName) + N';
 
ALTER ROLE db_datareader ADD MEMBER ' + QUOTENAME(@LoginName) + N';';
 
        EXEC sp_executesql @SQL;
       
        PRINT 'Пользователь создан и добавлен в db_datareader в базе: ' + @DBName;
    END
    ELSE
    BEGIN
        PRINT 'Предупреждение: База ' + @DBName + ' не найдена!';
    END
 
    FETCH NEXT FROM @Cur INTO @DBName;
END
 
CLOSE @Cur;
DEALLOCATE @Cur;
 
PRINT 'Скрипт выполнен успешно.';
}}
# Создать пользователя zbx_monitor для мониторинга (в скрипте перед выполнением изменить пароль на действующий).
{{CollapseCode|title=Выполнить запрос|content=
USE [master]
GO
CREATE LOGIN [zbx_monitor] WITH PASSWORD=N'password', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE [msdb]
GO
CREATE USER [zbx_monitor] FOR LOGIN [zbx_monitor]
GO
USE [master]
GO
GRANT VIEW SERVER STATE TO [zbx_monitor];
GRANT VIEW ANY DEFINITION TO  [zbx_monitor];
USE [msdb]
GO
GRANT SELECT ON msdb.dbo.sysjobs TO zbx_monitor;
GRANT SELECT ON msdb.dbo.sysjobservers TO zbx_monitor;
GRANT SELECT ON msdb.dbo.sysjobactivity TO zbx_monitor;
GRANT EXECUTE ON msdb.dbo.agent_datetime TO zbx_monitor;
}}

Текущая версия от 12:32, 26 августа 2026

  1. ...
  2. ...
  3. Установка SSMS: SSMS-Setup-RUS.exe /Passive DoNotInstallAzureDataStudio=1
  4. Настройка брандмауэра
    1. "1C server" для порта по списку: 1540, 1541, 1560-1591 (доступ к 1с-серверу с RDP-сервера).
    2. "MSSQL" для порта 1433 (доступ к SQL извне).
  5. Регистрация 1С COM-компоненты:
    1. ...
  6. Удалить AzureArc: Disable-WindowsOptionalFeature -Online -FeatureName AzureArcSetup
  7. Для создания плана обслуживания в SSMS:
▶ Выполнить запрос
-- Включаем отображение расширенных параметров
EXEC sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE;  
GO  

-- Включаем Agent XPs
EXEC sp_configure 'Agent XPs', 1;  
GO  
RECONFIGURE;  
GO
    1. Для службы SQL Server Agent переключить режим запуска в автоматический.
  1. ...
  2. Установка КриптоПРо CSP
  3. Проброс в реестр нужных ЭЦП для пользователя USR1CV8
  4. Создать пользователей и прописать доступ к базам для использования в YOSO-скриптах для evgen1y8, Reader1C, TelephonyReader1C (в скрипте перед запуском поправить параметры).
▶ Выполнить запрос
-- =============================================
-- Параметры (изменяйте только здесь)
-- =============================================
DECLARE @LoginName  NVARCHAR(128) = N'login_name';
DECLARE @Password   NVARCHAR(128) = N'password';
DECLARE @Databases  NVARCHAR(MAX) = N'base1,base2,base3,base4';  -- базы через запятую

-- =============================================
-- Основная логика (не меняйте)
-- =============================================

SET NOCOUNT ON;

DECLARE @SQL NVARCHAR(MAX);

-- 1. Создание логина на уровне сервера
SET @SQL = N'
USE master;
CREATE LOGIN ' + QUOTENAME(@LoginName) + N' 
    WITH PASSWORD = ' + QUOTENAME(@Password, '''') + N';';

EXEC sp_executesql @SQL;

PRINT 'Логин ' + @LoginName + ' успешно создан.';

-- 2. Предоставление права ALTER TRACE
SET @SQL = N'GRANT ALTER TRACE TO ' + QUOTENAME(@LoginName) + N';';
EXEC sp_executesql @SQL;

PRINT 'Право ALTER TRACE выдано.';

-- 3. Обработка каждой базы данных
DECLARE @DBName NVARCHAR(128);
DECLARE @Cur CURSOR;

SET @Cur = CURSOR LOCAL FAST_FORWARD FOR
    SELECT TRIM(value) 
    FROM STRING_SPLIT(@Databases, ',');

OPEN @Cur;
FETCH NEXT FROM @Cur INTO @DBName;

WHILE @@FETCH_STATUS = 0
BEGIN
    IF DB_ID(@DBName) IS NOT NULL
    BEGIN
        SET @SQL = N'
USE ' + QUOTENAME(@DBName) + N';
IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = ' + QUOTENAME(@LoginName, '''') + N')
    CREATE USER ' + QUOTENAME(@LoginName) + N' FOR LOGIN ' + QUOTENAME(@LoginName) + N';

ALTER ROLE db_datareader ADD MEMBER ' + QUOTENAME(@LoginName) + N';';

        EXEC sp_executesql @SQL;
        
        PRINT 'Пользователь создан и добавлен в db_datareader в базе: ' + @DBName;
    END
    ELSE
    BEGIN
        PRINT 'Предупреждение: База ' + @DBName + ' не найдена!';
    END

    FETCH NEXT FROM @Cur INTO @DBName;
END

CLOSE @Cur;
DEALLOCATE @Cur;

PRINT 'Скрипт выполнен успешно.';
  1. Создать пользователя zbx_monitor для мониторинга (в скрипте перед выполнением изменить пароль на действующий).
▶ Выполнить запрос
USE [master]
GO
CREATE LOGIN [zbx_monitor] WITH PASSWORD=N'password', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE [msdb]
GO
CREATE USER [zbx_monitor] FOR LOGIN [zbx_monitor]
GO
USE [master]
GO
GRANT VIEW SERVER STATE TO [zbx_monitor];
GRANT VIEW ANY DEFINITION TO  [zbx_monitor];
USE [msdb]
GO
GRANT SELECT ON msdb.dbo.sysjobs TO zbx_monitor;
GRANT SELECT ON msdb.dbo.sysjobservers TO zbx_monitor;
GRANT SELECT ON msdb.dbo.sysjobactivity TO zbx_monitor;
GRANT EXECUTE ON msdb.dbo.agent_datetime TO zbx_monitor;