MSSQL Ошибка 4060: Cannot open database requested by the login — Решение
- Сообщение:
Msg 4060, Level 16, State 1: Cannot open database 'Base1C' requested by the login. The login failed. Login failed for user 'usr1cv8'. - Кластер серверов 1С не может запустить рабочие процессы и подключиться к базе.
- Ошибка возникает сразу после восстановления базы данных из бэкапа на новом сервере.
- База данных находится в статусе
OFFLINE,RESTORINGилиSINGLE_USER.
1. Проверка доступности и статуса базы данных
SELECT name, state_desc, user_access_desc
FROM sys.databases
WHERE name = 'Base1C';
GOЕсли статус базы отличен от ONLINE или доступ ограничен SINGLE_USER, верните ее в штатный режим:
ALTER DATABASE [Base1C] SET ONLINE;
ALTER DATABASE [Base1C] SET MULTI_USER;
GO2. Исправление изолированных пользователей (Orphaned Users)
После восстановления бэкапа SID логина на сервере и SID пользователя внутри базы данных могут не совпадать. Проверьте наличие рассинхронизации:
USE [Base1C];
GO
EXEC sp_change_users_login 'Report';
GOИсправьте привязку логина службы 1С к пользователю базы:
USE [Base1C];
GO
ALTER USER [usr1cv8] WITH LOGIN = [usr1cv8];
GO3. Проверка прав доступа логина к базе
USE [Base1C];
GO
-- Назначение роли db_owner для сервисной учетной записи 1С
ALTER ROLE [db_owner] ADD MEMBER [usr1cv8];
GO Частые вопросы (FAQ)
Почему возникает ошибка 4060 после переноса базы на другой сервер?
При создании логина на новом сервере ему присваивается новый GUID (SID). В восстановленной базе пользователь хранит старый SID с предыдущего сервера. Несовпадение идентификаторов вызывает отказ в доступе.
Какие минимальные права требуются для пользователя 1С в MS SQL?
Для штатной работы серверной части 1С:Предприятия пользователю базы данных требуется назначить роль db_owner в целевой базе и права VIEW SERVER STATE на уровне сервера.
Что делать, если база находится в состоянии RESTORING?
Если накат логов завершен, выполните команду: RESTORE DATABASE [Base1C] WITH RECOVERY; чтобы перевести базу в рабочий статус ONLINE.
Может ли ошибка 4060 возникать из-за ошибки в имени базы?
Да, если в настройках информационной базы в консоли администрирования 1С указано неверное имя базы данных SQL (с учетом регистра/Collation), сервер вернет ошибку 4060.