MSSQL Ошибка 5011: User does not have permission to alter database — Решение
- Сообщение:
Msg 5011, Level 14, State 5: User does not have permission to alter database 'Base1C', or the database does not exist. - Сбой при попытке перевести базу в режим Simple/Full Recovery, Single User или включить RCSI.
- Ошибка при обновлении конфигурации 1С:Предприятие в режиме «Реструктуризация таблиц».
1. Проверка прав текущего пользователя
Для выполнения команд ALTER DATABASE пользователь должен быть владельцем базы (dbo), входить в фиксированную серверную роль sysadmin или иметь явное разрешение ALTER на уровне базы данных.
SELECT IS_SRVROLEMEMBER('sysadmin') AS IsSysadmin;
SELECT HAS_PERMS_BY_NAME('Base1C', 'DATABASE', 'ALTER') AS HasAlterPerm;
GO2. Назначение прав через добавление в роль db_owner
USE [Base1C];
GO
ALTER ROLE [db_owner] ADD MEMBER [usr1cv8];
GO3. Смена владельца базы данных (Database Owner)
Если база данных была примонтирована другим администратором, назначьте владельцем sa:
USE [Base1C];
GO
ALTER AUTHORIZATION ON DATABASE::[Base1C] TO sa;
GO4. Выдача прямого разрешения на изменение базы
USE [master];
GO
GRANT ALTER ON DATABASE::[Base1C] TO [usr1cv8];
GO Частые вопросы (FAQ)
Почему прав db_owner иногда недостаточно для выполнения ALTER DATABASE?
Некоторые глобальные операции (например, смена параметров шифрования, управление зеркалированием или добавление в Always On) требуют серверных прав sysadmin или ALTER ANY DATABASE на уровне экземпляра master.
Какие права нужны учетной записи 1С при создании новой информационной базы?
При создании новой базы из консоли 1С логин должен обладать серверной ролью dbcreator или sysadmin на сервере СУБД.
Что означает часть ошибки 'or the database does not exist'?
Если у пользователя нет разрешения VIEW ANY DATABASE, SQL Server из соображений безопасности скрывает факт существования базы и возвращает эту ошибку.
Как безопасно выдать права без включения в sysadmin?
Используйте связку: назначение роли db_owner в целевой базе плюс выдача разрешения GRANT VIEW SERVER STATE TO [usr1cv8] в базе master.