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

В это сложно поверить, но:

Сервер
Microsoft SQL Server 2005 - 9.00.5324.00 (X64) Aug 24 2012 18:28:47 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2)

и сервер и агент стартуют под одной и той же локальной учеткой.

Стал распухать лог, смотрю в хистори нет джобов бэкап лога. Агент запущен. Рестартанул его, не запустился. Смотрю эррор логи и вижу постоянные ошибки про отсутствие прав на мсдб.

Глянул и обалдел. У всех групп:
БалтИн\Администраторс,
Сервер\SQLServer2005SQLAgentUser$Сервер$MSSQLSERVER,
Сервер\SQLServer2005MSSQLUser$Сервер$MSSQLSERVER
осталась только роль паблик. Роли сисадмин, как не бывало. Восстановил роли у всех трех групп. ВсЁ Ок.

Вопрос: что могло случиться? Апдейты не накатывал, авто отключены. Руками точно никто не трогал.
И еще вопрос: юзеру НТАсорити\Систем нужна роль сисадмин? У него тоже только паблик сейчас. Джобы агента используют по умолчанию права серверной учетки. Ей необходимые права даны под Виндой. Я сам явно юзера систем не использую.
23 мар 15, 10:35    [17418004]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
Glory
Member

Откуда:
Сообщений: 104751
Гость123
Глянул и обалдел

Куда глянул то ?
Гость123
У всех групп:
БалтИн\Администраторс,
Сервер\SQLServer2005SQLAgentUser$Сервер$MSSQLSERVER,
Сервер\SQLServer2005MSSQLUser$Сервер$MSSQLSERVER
осталась только роль паблик.

Осталась где ?
Гость123
Роли сисадмин, как не бывало.

Сисадмину не нужны никакие дополнительные права. У него и так все есть
sysadmin Members of the sysadmin fixed server role can perform any activity in the server.
23 мар 15, 12:21    [17418601]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8839
Роль сервера sysadmin мог убрать только другой sysadmin или кто-то с таким грантом.
23 мар 15, 12:29    [17418667]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
o-o
Guest
Гость123,
в дефолтном трэйсе копайте, там sp_dropsrvrolemember фиксируется.
что-то такое:
select te.name, tsv.subclass_name, tr.NTUserName, tr.NTDomainName, tr.ApplicationName, tr.HostName,
	   tr.SPID, tr.StartTime, tr.objectid, tr.DatabaseName, tr.RoleName, tr.TargetLoginName
from   sys.traces st cross apply
		(select left(st.[path], len(st.[path]) - nullif(charindex('\', reverse(st.[path])), 0) + 1) + 'log.trc') t(p) cross apply
		sys.fn_trace_gettable(t.p, default) tr left join
		sys.trace_events te on te.trace_event_id = tr.EventClass left join
		sys.trace_subclass_values tsv on tsv.trace_event_id = tr.EventClass and tsv.subclass_value = tr.EventSubClass
where st.is_default = 1 and tr.DatabaseID = 1 and tsv.subclass_name = 'drop' and tr.RoleName = 'sysadmin'
order by tr.EventSequence;
23 мар 15, 12:30    [17418673]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
Гость123
Guest
2 Glory

У всех групп:
БалтИн\Администраторс,
Сервер\SQLServer2005SQLAgentUser$Сервер$MSSQLSERVER,
Сервер\SQLServer2005MSSQLUser$Сервер$MSSQLSERVER
осталась только роль паблик. Роли сисадмин У ЭТИХ ТРЕХ ГРУПП, как не бывало. Восстановил роль Сисадмин у всех трех групп. ВсЁ Ок.

ЗЫ. Не уверен, опять же, что она нужна на БалтИн\Администраторс.

2 о-о,

спасибо за запросик. Нет в нем дропов, особенно роли сисадмин ;-) Есть один дроп другой роли, припоминаю, к теме не относится.
Мои сегодняшние добавления есть. Минимум, максимум СтартТайма глянул, с сентября прошлого года по текущее время, файлы .trc есть, похоже ничего не утеряно в логе.

2 Владислав Колосов,
понятно, но админ я один и учетка сервиса скл. Да и лог подтверждает, что не снимали штатно руками.

Куда копать?
23 мар 15, 15:13    [17420037]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
Glory
Member

Откуда:
Сообщений: 104751
Гость123
Роли сисадмин У ЭТИХ ТРЕХ ГРУПП, как не бывало.

Что такое "роль у группы" ? Чье то членство в группе ?
23 мар 15, 15:19    [17420077]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
o-o
Guest
Гость123
ЗЫ. Не уверен, опять же, что она нужна на БалтИн\Администраторс.

а почему BUILTIN\Administrators -- "балт"? (хотя, конечно, лучше, чем "болт")
какой еще этой группе сисадмин, ее вообще надо из логинов выкинуть,
это ж все админы компa будут админами на вашем сервере?
у нас до миграции все были локальными админами,
т.е. если бы сосед по комнате включил мой компик, увидел сервер и полез,
он бы оказался вдруг админом моего сервера, жирно не будет?
свою учетку оставьте в админах и хватит.

про агента.
покажите картинкой Configuration Manager, под чем агент запускается.
например, у меня под NT AUTHORITY\SYSTEM,
так какая ему разница, какие там права у IS1P38HJ\SQLServer2005SQLAgentUser$IS1P38HJ$SQL_2005.
вот, пожалуйста, картинкой, нет у той IS1P38HJ\SQLServer2005SQLAgentUser$IS1P38HJ$SQL_2005 сисадмина,
зато NT AUTHORITY\SYSTEM -- сисадмин, и у агента все хорошо.

т.е. я к тому, что ваши группы, возможно, никто и не трогал в ближайшее время,
может, сразу после установки у них отобрали сисадмина из каких-то своих соображений.
а почему агент встал, да может по совсем другим причинам.

К сообщению приложен файл. Размер - 101Kb
23 мар 15, 15:55    [17420306]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
Гость123
Guest
о-о
про агента.
например, у меня под NT AUTHORITY\SYSTEM,
так какая ему разница, какие там права у IS1P38HJ\SQLServer2005SQLAgentUser$IS1P38HJ$SQL_2005.
вот, пожалуйста, картинкой, нет у той IS1P38HJ\SQLServer2005SQLAgentUser$IS1P38HJ$SQL_2005 сисадмина,
зато NT AUTHORITY\SYSTEM -- сисадмин, и у агента все хорошо.

а у меня под специальной локальной учеткой работает два сервиса СКЛ и Агент.
Вот поэтому мне и нужно, чтобы у моей IS1P38HJ\SQLServer2005SQLAgentUser$IS1P38HJ$SQL_2005 была роль СисАдмин.

Вот Вы снимите у своей NT AUTHORITY\SYSTEM роль СисАдмин(у Вас же Агент под ней стратует) и получите точно такой же результат, как у меня. Джобы встанут.

автор
а почему BUILTIN\Administrators -- "балт"? (хотя, конечно, лучше, чем "болт")

Ай так хорошо сливается с Л, что попадает в игнор ;-)

У меня в админах виндовс сервера, только кто нужен, включая учетку сервиса СКЛ и Агент. Посему запасная дверь, так сказать. Непосредственно у учетки и у группы есть роль СисАдмин.

Glory
Что такое "роль у группы" ? Чье то членство в группе ?

Простите, наверно я запутал Вас ролью у ГРУППЫ. Просто виндовс логин отображается в списке логинов, как ГРУППА (хотя строго говоря таковой не является) и на подсознательном уровне написал. Конечно можно управлять через членства, а можно непосредственно в свойствах логина, на закладке Серверная Роль. Я это имел ввиду.

Мы немножко отвлеклись, ИМХО.
Как такое могло слететь? Прикольно к примеру при перезагрузки сервиса у меня СКЛ не стартанул бы. Супер.
Человеческий фактор исключен на 99,9%. Админов кроме меня нет. Сервер не в домене и доменных админов нет в администраторах. В логах не видим снятие. Как?
24 мар 15, 09:08    [17422804]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8839
Могли логины пересоздать, к примеру. Само ничего не происходит.
24 мар 15, 11:16    [17423432]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
o-o
Guest
Гость123
Вот Вы снимите у своей NT AUTHORITY\SYSTEM роль СисАдмин(у Вас же Агент под ней стратует) и получите точно такой же результат, как у меня. Джобы встанут.

да почему вы так уверены-то?
чтобы учетка агента была админом, необязательно именно ее в сисадмины включать.
мало ли в какие еще виндовые группы ее можно засунуть,
а те группы(одной достаточно) включить в сисадмины.

я все к тому, что если никто и не выкидывал те 3 группы из сисадминов (ну трэйс же никто руками не правил,
а я больше верю трэйсу, чем рассказам),
то ситуация все равно не ясна до конца,
а были ли те 3 группы в админах может сказать, наверное, только бэкап мастера за ту неделю (до "слетания сисадмина"), развернутый на другом сервере.
Гость123
В логах не видим снятие. Как?

да запросто, все тем же вышеописанным способом.
допустим, была заведена виндовая группа, куда входила учетка агента.
та группа была в сисадминах.
грохнули группу в винде, осталась учетка агента без сисадминства.
24 мар 15, 11:16    [17423433]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
Гость123
Guest
Я с чего и начал. В это трудно поверить, но

Выделенный сервер. Не в домене. Одна локальная учетка, входит в группу администраторов. Более админов нет. Под ней стартует сервис СКЛ и Агент.
Сервер в эксплуатации почти год. При инсталяции сиквела указывалась эта локальная учетка. Это я к тому, что руками не давал роль СисАдмин для этих СКЛ ЛОГИНОВ, соответствующих ВИНДОУС ГРУППАМ.

о-о
Гость123
Вот Вы снимите у своей NT AUTHORITY\SYSTEM роль СисАдмин(у Вас же Агент под ней стратует) и получите точно такой же результат, как у меня. Джобы встанут.

да почему вы так уверены-то?
чтобы учетка агента была админом, необязательно именно ее в сисадмины включать.
мало ли в какие еще виндовые группы ее можно засунуть,
а те группы(одной достаточно) включить в сисадмины.

Я Вам это сказал, к тому, что у Вас Агент под .\Систем стартует и у соответствующего скл логина стоит роль СисАдмин. Вы это написали. Посему такое предположил. Джобы бы встали.
Если у Вас .\Систем входит еще в какие-то виндоус группы, а они или она соответствующими скл логинами наделены ролью СисАдмина - Ваше право. У меня к примеру, повторюсь, такая запасная дверь для группы Администраторов.

о-о
а были ли те 3 группы в админах может сказать, наверное, только бэкап мастера за ту неделю (до "слетания сисадмина"), развернутый на другом сервере.

Джоб по бэкапу лога, каждые 20 минут, на месяцами работающем сервере, вставший по причине потери прав на МСДБ, подтверждает это.

Владислав, если бы пересоздавалась учетка, имхо на логине скл это бы не отразилось. Или я не прав?
Согласен, что само ничего не происходит.
Как узнать время создания локальной учетки виндоус? По времени каталогов, не могу, равны времени установки.
24 мар 15, 15:09    [17425322]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
o-o
Guest
Гость123
Более админов нет

первый раз вижу.
может, *хотели* написать, но не реализовали

Гость123
если бы пересоздавалась учетка, имхо на логине скл это бы не отразилось. Или я не прав?

разумется, права бы дропнулись вместе с логином,
а вновь заведенному пришлось бы заново выдать,
но вы же типа в трэйсе не нашли drop login?

а если бы пересоздали виндовую учетку (а не логин сиквела для нее заведенный),
то она бы перестала попадать на сервер вообще, сид же меняется
24 мар 15, 15:44    [17425559]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8839
Административность локальной учетки и роль сервера sysadmin никак не связаны, могут быть любые комбинации.

НТАсорити\Систем роль сервера sysadmin не нужна.
Ни одной учетке от которой стартует службы сервера: SQL, Reporting, SQL Agent роль sysadmin для работы не нужны.

Агент перестанет работать, если потеряет маппинг на специальные роль агента в MSDB. Роль сервера sysadmin, разумеется, покрывает все потребности.
24 мар 15, 15:47    [17425575]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
o-o
Guest
Владислав Колосов
Ни одной учетке от которой стартует службы сервера: SQL, Reporting, SQL Agent роль sysadmin для работы не нужны.

Configuring SQL Server Agent
To perform its functions, SQL Server Agent must be configured to use the credentials of an account that is a member of the sysadmin fixed server role in SQL Server.

Selecting an Account for the SQL Server Agent Service
The account that the SQL Server Agent service runs as must be a member of the following SQL Server roles:
The account must be a member of the sysadmin fixed server role.
To use multiserver job processing, the account must be a member of the msdb database role TargetServersRole on the master server.
25 мар 15, 00:10    [17427440]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
Гость123
Guest
о-о
Гость123
Более админов нет

первый раз вижу.
может, *хотели* написать, но не реализовали

Сорри, не понял.

Давайте, чтоб не путататься введем местные термины:
Учетка - учетка виндоус, логин - СКЛ логин.
о-о
Гость123
если бы пересоздавалась учетка, имхо на логине скл это бы не отразилось. Или я не прав?

разумется, права бы дропнулись вместе с логином,
а вновь заведенному пришлось бы заново выдать,
но вы же типа в трэйсе не нашли drop login?


Т.е. я имел ввиду возможное пересоздание учетки, а не логина скл. Вы здесь я так понимаю про пересоздание логина скл. Его точно не было. И опять же лог подтверждает. Там повторюсь вообще один дроп аудита.

о-о
а если бы пересоздали виндовую учетку (а не логин сиквела для нее заведенный),
то она бы перестала попадать на сервер вообще, сид же меняется

А вот это, похоже про то, что я спрашивал. Только вспомним начало вопроса. Даже если пересоздавалась учетка виндоус и ее сид стал новым, виндоус группа Сервер\SQLServer2005MSSQLUser$Сервер$MSSQLSERVER, которой она принадлежит и соответственно соответствующий логин скл, имхо не должны были изменяться. Повторюсь одна единственная локальная учетка входит во все виндоус группы сиквела, созданные при инсталяции. Больше учеток в этих группах нет. Двум логинам скл, соответствующим группам Сервер\SQLServer2005SQLAgentUser$Сервер$MSSQLSERVER, Сервер\SQLServer2005MSSQLUser$Сервер$MSSQLSERVER даны роли СисАдмин.

Владислав Колосов
Административность локальной учетки и роль сервера sysadmin никак не связаны, могут быть любые комбинации.

Согласен.

Владислав Колосов
НТАсорити\Систем роль сервера sysadmin не нужна.

Согласен, при условии, что сервис скл стартует не под .\Систем.
25 мар 15, 09:48    [17428008]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
Гость123
Guest
Владислав Колосов
Ни одной учетке от которой стартует службы сервера: SQL, Reporting, SQL Agent роль sysadmin для работы не нужны.


Владислав, можете это доказать? Касаемо служб СКЛ и Агента.
Может действительно я ищу черную кошку, которой и не было в темной комнате. Повторюсь, сам я этим логинам = виндоус группам
Сервер\SQLServer2005SQLAgentUser$Сервер$MSSQLSERVER, Сервер\SQLServer2005MSSQLUser$Сервер$MSSQLSERVER не давал СисАдмин. Типа "восстановление " с ходу помогло и все покрыло.

Я сильно в этом сомневаюсь. По крайней мере еще один такой сервак крутится и у него так же есть роль СисАдмин у скл логинов соответствующих учеткам (правда там доменным, но без разницы) под которыми крутятся сервисы СКЛ и Агент.
25 мар 15, 10:04    [17428082]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
o-o
Guest
Гость123,

Если пересоздать виндовую учетку, причем она не отмаплена на сервер как логин, т. е. на сервер она попадала только через группы, + если больше ничего не делать, то она перестанет попадать на сервер. Если после пересоздания ее вернуть в виндовые группы, то она будет попадать как и прежде с правами тех групп, т. е. пересоздание той вашей локальной виндовой учетки на правах групп в сиквеле не отразится никак при любом раскладе
25 мар 15, 10:32    [17428258]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
Гость123
Guest
2 o-o
Полностью согласен.
Дело за малым ;-) Есть версии, что случилось у меня?

Поймите, не флейма ради, а забуду глянуть роли перед рестартом каким-нибудь. Или не дай бог, жесткий выкл. А они слетели, очень не хочется танцевать с бубном.
25 мар 15, 10:54    [17428390]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
o-o
Guest
Ну, если хотите полный фантастиш, то так:
Взяли и развернули где-то бэкап мастера, выкинули группы из сисадмина, остановили оба сервера, на рабочий скопировали измененный мастер, запустили.
Может, еще через DAC членов роли сисадмин поудаляли руками?
В обоих случаях делали бы рестарт серверу, надо в еррорлоге посмотреть, когда в последний раз был рестарт, чтобы бредовые идеи отмести :)
25 мар 15, 11:09    [17428502]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8839
o-o, Вы не поверите, но на одном из сервером агент у меня прекрасно себя чуствует без сисадмин серверных прав.
Сисадмин ему нужен для выполнения заданий, требующих, например, xp_ процедур.

В msdb учетка агента является членом групп базы данных:
SQLAgentOperatorRole
SQLAgentReaderRole
SQLAgentUserRole


Специально убедился, что технологическая учетка не проходит аутентификацию через группы домена с sysadmin правами.
25 мар 15, 11:57    [17428844]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
o-o
Guest
Владислав Колосов,

я не знаю, как он у вас умудряется исполнять то же dbcc checkdb для всех баз,
ведь это или надо быть овнером всех баз, или сисадмином,
но по просьбам трудящихся отбираю сисадмина у учетки агента, так он больше не стартует.
вот что у него в логе:
2015-03-25 10:07:38 - ! [298] SQLServer Error: 229, The EXECUTE permission was denied on the object 'sp_sqlagent_has_server_access', database 'msdb', schema 'dbo'. [SQLSTATE 42000] (ConnIsLoginSysAdmin)

но я не сдаюсь и выполняю:
use msdb;
go

create user [NT AUTHORITY\SYSTEM] from login [NT AUTHORITY\SYSTEM];

exec sp_addrolemember 'SQLAgentOperatorRole', [NT AUTHORITY\SYSTEM];
exec sp_addrolemember 'SQLAgentReaderRole', [NT AUTHORITY\SYSTEM];
exec sp_addrolemember 'SQLAgentUserRole', [NT AUTHORITY\SYSTEM];


агент не стартует. а что у нас в sqlagent.out? а все то же самое:
2015-03-25 10:24:27 - ! [298] SQLServer Error: 229, The EXECUTE permission was denied on the object 'sp_sqlagent_has_server_access', database 'msdb', schema 'dbo'. [SQLSTATE 42000] (ConnIsLoginSysAdmin)

ну я конечно могу на каждую ошибку идти и выдавать недостающие разрешения, но НАФИГА?
вон же выше официальная документация.
25 мар 15, 12:32    [17429150]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
o-o
Guest
не, я дорасскажу, может, кто зажелает повторить этот идиотизм.

теперь он пишет, что стартует и останавливается.
sqlagent.out пуст, лог тоже, хотя размер обоих файлов 1Кб,
3 раза подряд запускаю, в Windows Application Log он типа успешно стартанул.
чего ему не хватает -- не пишет.
переадресую вопрос Владиславy Колосову: что еще ему надо?
---
хотя на сегодня мое время на фигню вышло

К сообщению приложен файл. Размер - 113Kb
25 мар 15, 12:47    [17429276]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
o-o
Guest
в смысле, это все после выдачи execute on sp_sqlagent_has_server_access,
на картинке есть, извиняюсь, вот кодом:
grant execute on sp_sqlagent_has_server_access to [NT AUTHORITY\SYSTEM]
25 мар 15, 12:49    [17429295]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
Гость123
Guest
о-о
но по просьбам трудящихся отбираю сисадмина у учетки агента, так он больше не стартует.
вот что у него в логе:
2015-03-25 10:07:38 - ! [298] SQLServer Error: 229, The EXECUTE permission was denied on the object 'sp_sqlagent_has_server_access', database 'msdb', schema 'dbo'. [SQLSTATE 42000] (ConnIsLoginSysAdmin)

Ну я же говорил, что не надо ;-)
У меня точно такие же ошибки были при рестарте Агента. И похожие каждые 20 минут при попытке дожоба, до остановки Агента.

Ну, что фаза луны у меня была или происки мелкомягких.
25 мар 15, 13:21    [17429534]     Ответить | Цитировать Сообщить модератору
 Re: Слетела sysadmin у всех групп  [new]
o-o
Guest
Гость123
о-о
но по просьбам трудящихся отбираю сисадмина у учетки агента, так он больше не стартует.
вот что у него в логе:
2015-03-25 10:07:38 - ! [298] SQLServer Error: 229, The EXECUTE permission was denied on the object 'sp_sqlagent_has_server_access', database 'msdb', schema 'dbo'. [SQLSTATE 42000] (ConnIsLoginSysAdmin)

Ну я же говорил, что не надо ;-)

да не переживайте вы так, у меня сервер бездействует,
стартую когда хочу, копии мастера и мсбд перед каждым издевательством делаю,
еще и бэкапы для перестраховки.
погаженные файлы тоже наготове, если надо вернуть ситуацию с учеткой агента в тех ролях и с правом на процедуру, за минуту все верну.
мне-то что, я документацию читаю, просто есть же особенные читатели, верящие больше на слово, что где-то и так работает,
а мне проверить несложно.

вы посмотрели или нет, рестартовали ли сервер в непосредственно до "слетания" сисадминов?
25 мар 15, 13:33    [17429621]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить