Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

MSSQL_ERROR_15151 1С:Предприятие и СУБД

MSSQL Error 15151: Cannot alter the login because it does not exist or no permission

Обновлено: 25.08.2026 · Официальная документация ↗
  • Команда ALTER LOGIN завершается ошибкой Msg 15151, Level 16, State 1: Cannot alter the login '%.*ls', because it does not exist or you do not have permission.
  • Скрипты создания или синхронизации пользователей 1С падают при попытке сопоставления схемы.
  • Администратор не может изменить пароль или статус учетной записи (ENABLE/DISABLE).

1. Проверка существования учетной записи на уровне экземпляра

-- Поиск серверного логина (Server Principal)
SELECT name, principal_id, type_desc, is_disabled 
FROM sys.server_principals 
WHERE name = 'usr1cv8_db';

2. Проверка прав текущей сессии

Для модификации логина требуются права ALTER ANY LOGIN или членство в роли sysadmin / securityadmin:

SELECT IS_SRVROLEMEMBER('sysadmin') AS IsSysAdmin;
SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name LIKE '%LOGIN%';

3. Разделение понятий LOGIN (сервер) и USER (база данных)

Частая ошибка — попытка применить ALTER LOGIN к пользователю базы данных (Database User):

-- Если нужно изменить пользователя внутри базы 1С:
USE your_1c_db;
GO
-- Для пользователя БД используйте ALTER USER:
ALTER USER [usr1cv8] WITH LOGIN = [usr1cv8];

4. Корректный синтаксис изменения учетной записи входа

-- Создание логина, если он отсутствует
IF NOT EXISTS (SELECT 1 FROM sys.server_principals WHERE name = 'usr1cv8_db')
    CREATE LOGIN [usr1cv8_db] WITH PASSWORD = 'Strong_Password_1C#2026', CHECK_POLICY = ON;
ELSE
    ALTER LOGIN [usr1cv8_db] WITH PASSWORD = 'Strong_Password_1C#2026', ENABLE;
💡 Практика специалистов: Для служебной учетной записи сервера 1С (usr1cv8) всегда отключайте параметр CHECK_EXPIRATION (CHECK_EXPIRATION = OFF), чтобы избежать внезапной блокировки кластера 1С из-за истечения срока действия пароля Windows-политики.

Частые вопросы (FAQ)

В чем разница между Server Login и Database User?

Login создается на уровне инстанса SQL Server и отвечает за аутентификацию (подключение). User создается внутри конкретной базы данных и отвечает за авторизацию (права доступа к таблицам 1С).

Почему sysadmin получает ошибку 15151 при попытке изменить логин Windows?

Если доменный пользователь был переименован или удален из Active Directory, SQL Server не сможет разрешить SID объекта и вернет ошибку 15151.

Как исправить проблему 'Orphaned Users' (пользователей-сирот) после восстановления базы 1С?

Используйте сопоставление через команду: ALTER USER [username] WITH LOGIN = [loginname]; либо EXEC sp_change_users_login 'Auto_Fix', 'username'.

Можно ли переименовать логин sa при получении ошибки 15151?

Да, но только под учетной записью с правами sysadmin через команду ALTER LOGIN [sa] WITH NAME = [new_sa_name]; предварительно убедившись, что имя sa не занято.

Полезные материалы
Рекомендуем