Ошибка при выходе SQL базы данных сервера из режима восстановления? - PullRequest
0 голосов
/ 08 мая 2020

У меня есть SQL серверная база данных в состоянии восстановления. Это сценарий, который я использовал, чтобы попытаться вывести его из режима восстановления:

--Step 1 (Check Database Status) 
SELECT 
    DATABASEPROPERTYEX ('CM_DSS', 'status') AS '"CM_DSS Current Status"', 
    DATABASEPROPERTYEX ('ReportServer', 'status') AS '"ReportServer Current Status"',
    DATABASEPROPERTYEX ('ReportServerTempDB', 'status') AS '"ReportServerTempDB Current Status"',
    DATABASEPROPERTYEX ('SUSDB', 'status') AS '"SUSDB Current Status"'

--Step 2 (Set Database into Single User Mode)
ALTER DATABASE ReportServer SET Single_User

--Step 3 (Set Database in Emergency Mode)
ALTER DATABASE ReportServer SET EMERGENCY

--Step 4 (Repair Missing Log File with Dataloss  
DBCC CHECKDB('ReportServer', REPAIR_ALLOW_DATA_LOSS)

--Step 5 Set Database Access for Everyone 
ALTER DATABASE ReportServer SET MULTI_USER 

Это ошибка, которую я получаю после попытки запуска шаг 2:

Msg 5011, уровень 14, состояние 9, строка 2
Пользователь не имеет разрешения на изменение базы данных ReportServer, база данных не существует или база данных не находится в состояние, которое разрешает проверки доступа.

Сообщение 5069, уровень 16, состояние 1, строка 2
Ошибка оператора ALTER DATABASE.

Я уверен, что у меня есть права администратора на это db, если нет, как мне проверить? Поскольку база данных ReportServer действительно существует, она находится в режиме восстановления ..

1 Ответ

0 голосов
/ 08 мая 2020
ALTER DATABASE [database_name] 
SET SINGLE_USER 
WITH ROLLBACK IMMEDIATE; 

должен выгнать всех остальных, чтобы он мог перейти в однопользовательский режим

Чтобы проверить свои права,

use [database_name]
select *
from sys.fn_my_permissions (NULL,'DATABASE')

и вам нужно иметь права ALTER на база данных для использования SET в базе данных

Пример: Rights list with Alter highlighted

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...