Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Не включаются БД после режима offline  [new]
Den_KP
Member

Откуда:
Сообщений: 155
Всем привет!
Столкнулся с интересной проблемой на 2008 MSSQL.
Базы после перехода в offline не переходят в online. Файлы данных не изменяются. Такая же проблема даже с новыми созданными базами.
1. Проверил права на файлах, MSSQL учетка есть. Администраторы тоже есть.
2. Служба работает под технологичкой, она тоже в админах.
3. Бэкап проходит, рестор тоже.
4. Пока помогло оживить базу только удаление offline бд из списка, и заново attach.


Сама ошибка:
Set offline failed for Database 'ttt'. 

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.0.6000.29+((Katmai_SP4).140902-2248+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Set+offline+Database&LinkId=20476

------------------------------
ADDITIONAL INFORMATION:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

------------------------------

User does not have permission to alter database 'ttt', the database does not exist, or the database is not in a state that allows access checks.
ALTER DATABASE statement failed. (Microsoft SQL Server, Error: 5011)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.00.6000&EvtSrc=MSSQLServer&EvtID=5011&LinkId=20476
8 ноя 19, 05:28    [22012011]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29587
Den_KP
Базы после перехода в offline не переходят в online. Файлы данных не изменяются. Такая же проблема даже с новыми созданными базами.
1. Проверил права на файлах, MSSQL учетка есть. Администраторы тоже есть.
А под кем коннектится в SSMS пользователь, выполняющий запросы на перевод в offline и в online? Win или SQL? Они сисадмины в сиквеле?
8 ноя 19, 09:10    [22012073]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
msLex
Member

Откуда:
Сообщений: 6987
Den_KP,

В логе посмотрите, там точная ошибка должна быть.
8 ноя 19, 09:17    [22012081]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
PsyMisha
Member

Откуда: другая столица
Сообщений: 486
Попробуйте еще, в дополнению к обычному логу событий, - посмотреть так же и трассировку по-умолчанию, - в ней много чего полезного можно отследить, что даже в лог не пишется
Фильтры там настройте только, поковыряйте

DECLARE @filename VARCHAR(500) 
SELECT @filename = SUBSTRING(path, 0,LEN(path) - CHARINDEX('\',REVERSE(path)) + 1)+ '\Log.trc'
	FROM sys.traces
	WHERE is_default = 1 ;

SELECT
  te.Name AS EventName
  ,tsv.subclass_name AS SubEventName
  ,StartTime
  ,LoginName
  ,SessionLoginName
  ,ApplicationName
  ,HostName
  ,DatabaseName
  ,TextData
  ,SPID
  ,Error
  ,Success
  ,IsSystem
FROM fn_trace_gettable(@fileName, DEFAULT) gt 
  INNER JOIN sys.trace_events te ON EventClass = te.trace_event_id 
  LEFT JOIN sys.trace_subclass_values tsv on EventClass = tsv.trace_event_id and EventSubClass = tsv.subclass_value

WHERE spid != @@spid 
-- EventClass IN(20) -- Audit Login Failed
AND textdata LIKE '%your_text%'

ORDER BY StartTime DESC
8 ноя 19, 10:01    [22012122]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
PsyMisha
Member

Откуда: другая столица
Сообщений: 486
и еще так же полезняшка - сиквельный лог событий удобней смотреть скриптом, а не через GUI

DECLARE @HOURS BIGINT
SET @HOURS = 24
-- ONE WEEK = 168 HOURS IF SO

-- #################

IF OBJECT_ID('tempdb..#TempSqlLogTable') IS NOT NULL
DROP TABLE #TempSqlLogTable


CREATE TABLE #TempSqlLogTable
(
	[DateTime] DATETIME,
	[Owner] NVARCHAR(255),
	[EventText] NVARCHAR(MAX)
)

INSERT INTO #TempSqlLogTable
EXEC sys.xp_readerrorlog 0, 1

SELECT * 
FROM #TempSqlLogTable AS EL
WHERE DATEDIFF(HH, EL.[DateTime], GETUTCDATE() )  <= @HOURS

--AND EL.EventText LIKE '%mirror%'

ORDER BY EL.[DateTime] DESC
8 ноя 19, 10:03    [22012125]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
Den_KP
Member

Откуда:
Сообщений: 155
alexeyvg,
Запускал под Доменным своим юзером с правада dbadmin и Admin на уровне сервера.
Вторым кейсом запускал из под sql учетки с правами dbadmin
8 ноя 19, 12:24    [22012230]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
Den_KP
Member

Откуда:
Сообщений: 155
PsyMisha,

Спааасибо! Мощная штука, пойду искать под лупой! Отпишусь как будет хоть какой то результат
8 ноя 19, 12:29    [22012232]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
Den_KP
Member

Откуда:
Сообщений: 155
msLex,

Наверное если я пишу сюда, я изначально проверил event logs...
8 ноя 19, 12:30    [22012233]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5042
PsyMisha
и еще так же полезняшка - сиквельный лог событий удобней смотреть скриптом, а не через GUI


EXEC sys.xp_readerrorlog 0, 1

эта проца умеет выводить данные за нужный промежуток времени (5 и 6 параметры)


WHERE DATEDIFF(HH, EL.[DateTime], GETUTCDATE() )  <= @HOURS
вот так лучше не писать
понятно, что в данном примере все равно будет table scan
но лучше сразу писать оптимально

 WHERE EL.[DateTime]>=dateadd(hh,-1*@hours,getdate())


Сообщение было отредактировано: 8 ноя 19, 12:41
8 ноя 19, 12:39    [22012241]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
PsyMisha
Member

Откуда: другая столица
Сообщений: 486
komrad,

Ну хорошо, хорошо, - уговорили :)
Админские скрипты - это прежде всего функциональные инструменты, про производительность там обычно не шибко вспоминают :)
А я писал этот скрипт именно в те времена, когда функционал был на первом месте :)
8 ноя 19, 13:19    [22012276]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
msLex
Member

Откуда:
Сообщений: 6987
Den_KP
msLex,

Наверное если я пишу сюда, я изначально проверил event logs...


Я не знаю какой event logs вы там проверяли, я говорил про лог sql server-а, который вы и собрались с лупой анализировать.
Den_KP
PsyMisha,

Спааасибо! Мощная штука, пойду искать под лупой! Отпишусь как будет хоть какой то результат
8 ноя 19, 13:23    [22012283]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
Yasha123
Member

Откуда:
Сообщений: 1640
что-то ошибка из первого поста говорит о том,
что не в онлайн, а в оффлайн не переводится...
---
не делайте через гуи, пишите командой
alter database ttt set online

а когда вывалится ошибка,
выполните еще и
select *
sys.fn_my_permissions(null, 'server')

и результат в студию.
8 ноя 19, 22:33    [22012626]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 740
Den_KP
alexeyvg,
Запускал под Доменным своим юзером с правада dbadmin и Admin на уровне сервера.
Вторым кейсом запускал из под sql учетки с правами dbadmin


Права dbadmin - имеется ввиду роль db_owner? Admin на уровне сервера - я правильно понимаю что твой пользователь в списке администраторов Windows? Если да - этого недостаточно.

Дай своему пользователю права на роль sysadmin или хотя бы права на роли dbcreator и diskadmin.

И почитай это:
Database-Level Roles
Server-Level Roles
9 ноя 19, 17:16    [22012808]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29587
flexgen
Den_KP
alexeyvg,
Запускал под Доменным своим юзером с правада dbadmin и Admin на уровне сервера.
Вторым кейсом запускал из под sql учетки с правами dbadmin


Права dbadmin - имеется ввиду роль db_owner? Admin на уровне сервера - я правильно понимаю что твой пользователь в списке администраторов Windows? Если да - этого недостаточно.
Угу, как я понимаю, если база offline, то какие могут быть права внутреннего пользователя базы, внутри этой базы?

В доке написано, что для выполнения alter database нужно разрешение alter database
Значит, логину нужно дать разрешение ALTER ANY DATABASE

Или, как уже написали, включить его в sysadmin, который имеет все права, или в dbcreator, который включает это право.
9 ноя 19, 19:59    [22012856]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29587
Den_KP,

А вообще секюрити-модель сиквела очень простая, прозрачная, всё интуитивно понятно.

К сообщению приложен файл. Размер - 78Kb
9 ноя 19, 20:13    [22012861]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3158
Den_KP
PsyMisha,

Спааасибо! Мощная штука, пойду искать под лупой! Отпишусь как будет хоть какой то результат


не стоит сразу браться за лупу, логи проверьте
10 ноя 19, 15:43    [22013045]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
AndrF
Member

Откуда:
Сообщений: 2125
alexeyvg
Den_KP,

А вообще секюрити-модель сиквела очень простая, прозрачная, всё интуитивно понятно.


Хочу такую картинку в большем размере! ;)
11 ноя 19, 11:48    [22013382]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1114
AndrF
alexeyvg
Den_KP,

А вообще секюрити-модель сиквела очень простая, прозрачная, всё интуитивно понятно.


Хочу такую картинку в большем размере! ;)

Держите: https://aka.ms/sql-permissions-poster
11 ноя 19, 11:57    [22013389]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29587
Minamoto
AndrF
Хочу такую картинку в большем размере! ;)

Держите: https://aka.ms/sql-permissions-poster
Ещё эта картинка есть в документации, на странице, с которой и нужно начинать изучение разрешений в сиквеле: Разрешения (ядро СУБД)
11 ноя 19, 12:56    [22013462]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
Yasha123
Member

Откуда:
Сообщений: 1640
alexeyvg

А вообще секюрити-модель сиквела очень простая, прозрачная, всё интуитивно понятно.

да уж куда прозрачнее-то.
представьте, есть у меня юзер, его единственная задача это вставка в таблицы базы.
правда, вставляет он в явном виде, т.е. делает set identity_insert on/off.
в тучу таблиц так вставляет (оставим за кадром супер-дизайн)
хватит ли ему роли db_datawriter?
и если нет, чего ему выдать, чтобы ничего лишнего не дать?
11 ноя 19, 16:23    [22013703]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
PsyMisha
Member

Откуда: другая столица
Сообщений: 486
Yasha123
alexeyvg

А вообще секюрити-модель сиквела очень простая, прозрачная, всё интуитивно понятно.

да уж куда прозрачнее-то.
представьте, есть у меня юзер, его единственная задача это вставка в таблицы базы.
правда, вставляет он в явном виде, т.е. делает set identity_insert on/off.
в тучу таблиц так вставляет (оставим за кадром супер-дизайн)
хватит ли ему роли db_datawriter?
и если нет, чего ему выдать, чтобы ничего лишнего не дать?



Нуу, так сходу - надо же, чтобы прочиталось значение уже существующих данных, для того чтобы сделать identity? Вопрос - какой поток это читает - неявно на нижнем уровне, системном, делается автоинкремент, или в контексте безопасности той УЗ, из под которой происходит имперсонированный доступ к таблице? Тогда ей нужен db_datareader (грубо), по аналогии с операцией UPDATE - когда и чтение и удаление происходят и вставка
11 ноя 19, 17:27    [22013785]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
msLex
Member

Откуда:
Сообщений: 6987
Yasha123
alexeyvg

А вообще секюрити-модель сиквела очень простая, прозрачная, всё интуитивно понятно.

да уж куда прозрачнее-то.
представьте, есть у меня юзер, его единственная задача это вставка в таблицы базы.
правда, вставляет он в явном виде, т.е. делает set identity_insert on/off.
в тучу таблиц так вставляет (оставим за кадром супер-дизайн)
хватит ли ему роли db_datawriter?
и если нет, чего ему выдать, чтобы ничего лишнего не дать?


Если не ошибаюсь, для set identity_insert on нужен alter table, так что ответ - никак.
11 ноя 19, 17:31    [22013788]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
Yasha123
Member

Откуда:
Сообщений: 1640
msLex,
вот именно.
и его (alter) никак на все таблицы (будущие включительно) не выдать.
и получается, что для какого-то позорного инсерта надо наделить юзера излишними правами.
до кучи излишними.
и что это за db_datawriter, что не может в таблицы писать?
а так-то да, все прозрачно...
11 ноя 19, 17:35    [22013795]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
msLex
Member

Откуда:
Сообщений: 6987
Yasha123
msLex,
вот именно.
и его (alter) никак на все таблицы (будущие включительно) не выдать.

хмм, вроде, alter any schema на уровне DB должно хватать


Yasha123
и получается, что для какого-то позорного инсерта надо наделить юзера излишними правами.
до кучи излишними.

что есть, то есть


Yasha123

и что это за db_datawriter, что не может в таблицы писать?

вы еще про bulk вспомните
11 ноя 19, 17:59    [22013830]     Ответить | Цитировать Сообщить модератору
 Re: Не включаются БД после режима offline  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29587
Yasha123
и получается, что для какого-то позорного инсерта надо наделить юзера излишними правами.
до кучи излишними.
Ничего себе "какого то инсёрта", пользователь же меняет поведение кода во всех коннектах (как бы сбивает текущий идентити-счётчик)

Другое дело, что можно было сделать по другому само поведение "set identity_insert". И тогда, наверное, можно было ограничиться правами db_datawriter.
11 ноя 19, 18:16    [22013849]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить