|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
Всех с Новым годом друзья! Бьюсь уже с прошло года с проблемой. Можете открыть холивар по моему подходу даже) Вообщем, есть джоб в таск шелдулере сервера. Он создает файл с датой, потом идет по инстансам скулей и собирает размеры БД. Но дело в том что ручками я запускаю с шелла, все работает а по расписанию не работает и выходит ошибка. Код: sql 1.
Сам скриптик: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Джоб запускается от юзера у которого есть все права, тем более ручками все пашет. Т.е. скорее всег ошелдулер не прокидывает кренденшиналы а буриться анонимно, как это изменить можно? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 11:30 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
Den_KP, Сейчас дергая powershell.exe вышел до ошибки логина, почему то он не понимает что это виндовая учетка? Message Login failed for user 'DOMAIN\User'. Reason: Attempting to use an NT account name with SQL Server Authentication. [CLIENT: xxx.xx.xx.xxx] ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 11:50 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
Den_KP Den_KP, Сейчас дергая powershell.exe вышел до ошибки логина, почему то он не понимает что это виндовая учетка? Message Login failed for user 'DOMAIN\User'. Reason: Attempting to use an NT account name with SQL Server Authentication. [CLIENT: xxx.xx.xx.xxx] Дело скорее всего в connection string. Уберите Integrated Security=SSPI; ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 12:23 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
a_voronin, Подскажите а где убирается? В скрипте нет в стринге, в инстансе тоже не вижу( ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 12:32 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
Так ведь мне наоборот нужно через доменную ходить) Я и включал и выключал. Только когда явно указываю логин и пароль плюс ntegrated Security=false работает Но я не хочу светить логин и пароль. Тем более зачем тогда в Tash Schelduler я указываю логин доменный и пароль, если он его не прокидывает? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 13:07 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
Den_KP, Надо разбираться с invoke-sqlcmd. Там ещё есть Credentials https://docs.microsoft.com/en-us/powershell/module/sqlserver/invoke-sqlcmd?view=sqlserver-ps ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 13:11 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
Den_KP Сейчас дергая powershell.exe вышел до ошибки логина, почему то он не понимает что это виндовая учетка? потому что кто-то указал еще и пароль? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 13:13 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
Den_KP ... Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. ... Джоб запускается ... скорее всег ошелдулер не прокидывает кренденшиналы чем запускаете-то, агентом что ли? конечно он ничего "не прокидывает", оттуда и ANONYMOUS LOGON. ищите на double hop и Kerberos delegation ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 13:17 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
Запускаю с помощью Windows Schelduler Там джоб с скриптом который в начале написал. Вот как можно сюда прокинуть Учетку без пароля или ту что запускает джоб (они доменные) чтобы работало Invoke-Sqlcmd -ServerInstance Server1 $QueryFmt | Export-CSV $exportfile -Encoding UTF8 Invoke-Sqlcmd -ServerInstance Server2 $QueryFmt | Export-CSV $exportfile -Encoding UTF8 -Append ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 13:23 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
Есть идеи? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 07:48 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
Den_KP Есть идеи? Выясняйте это. К сиквелу это не имеет отношения, соответственно, лучше спрашивать в разделе Администрирование ОС - Windows ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 09:02 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
Den_KP, Ну как минимум - можно прокинуть учетку, если сформировать строку подключения не используя стандартные PowerShell'льные методы - можно создать свой .net'овский экземпляр объекта к, примеру, так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
У меня в примере TRUNCATE, но по-сути неважно - главное, что у объекта команды есть метод исполнить код - или прямой сиквельный или хранимую процедуру Ну и вывод в итоге запихать в файл ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 09:02 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
Den_KP Запускаю с помощью Windows Schelduler Иначе откуда шедулер узнает, под кем запускать??? Вот, например, что то похожее: https://social.technet.microsoft.com/Forums/en-US/4692e927-6962-4327-b393-964a57fa38fe/automating-with-task-scheduler-using-service-account-active-directory-windows-login-to-connect-to?forum=ITCG ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 09:09 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
Den_KP, Вообще - в свое время писал несколько подобных пакетов, которые бегали по сиквельной инфре, забирали кучу инфы, - все, что System Center не умеет, и складывали бы в единый репозиторий для последующего мини ХД и SSRS наверху этого всего. И на SSIS/.NET писал, и на голом PS. Не помню, чтобы чем-то еще заморачивался бы в плане прокидывания учетки, кроме SPN и Kerberos delegation Жалко, уже не работаю в тех компаниях, - не посмотреть сейчас вживую, как оно там крутится и какие настройки - только по воспоминаниям сейчас Попробуйте сравнить две УЗ, из-под которых ранятся скрипты - вашу, интерактивную, и ту, что имперсонирует виндовый джоб. 1) Проверьте SPN в ADSIedit.msc - у каждой из них 2) Если SPN создан, то в объекте УЗ (компьютера и пользователя) - в оснастке ADUC появляется вкладка "Delegation". Поставьте в ней опцию "Trust this user for delegation to any service" ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 09:19 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
Den_KP Есть идеи? 1.Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. Reason: Could not find a login matching the name provided.2.Login failed for user 'DOMAIN\User'. Reason: Attempting to use an NT account name with SQL Server Authentication. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 09:20 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
alexeyvg, Вообще - обычно делается как - в домене создается специальный сервисный аккаунт со сложным паролем. В виндовом джобе указывается этот аккаунт в качестве RunAs - "Run whether user is logged on or not" и при нажатии ОК - появляется окно для ввода пароля. Пароль сохраняется во внутрях в криптованомм виде, и вуаля. Все последующие коннекшн-стринги, где бы и на каком уровне они бы не были - хоть в SSIS-пакете, который запускается из этого джоба, хоть PS, хоть .NET-код внутри SSIS-пакетов - все это имперсонирует контекст безопасности, заданный в этой одной центральной точке, если, конечно, указана опция "use Windows authentication" Я лично всегда старался всю эту инфру и модульность проектировать так, чтобы по минимум настройками и захардкоденными учетками обходиться ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 09:26 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
PsyMisha alexeyvg, Вообще - обычно делается как - в домене создается специальный сервисный аккаунт со сложным паролем. В виндовом джобе указывается этот аккаунт в качестве RunAs - "Run whether user is logged on or not" и при нажатии ОК - появляется окно для ввода пароля. Пароль сохраняется во внутрях в криптованомм виде, и вуаля. Все последующие коннекшн-стринги, где бы и на каком уровне они бы не были - хоть в SSIS-пакете, который запускается из этого джоба, хоть PS, хоть .NET-код внутри SSIS-пакетов - все это имперсонирует контекст безопасности, заданный в этой одной центральной точке, если, конечно, указана опция "use Windows authentication" Я лично всегда старался всю эту инфру и модульность проектировать так, чтобы по минимум настройками и захардкоденными учетками обходиться Никогда не было необходимости запускать что то под Windows Task Schelduler, всегда использовал сиквельный агент, но в общем предполагал, что как то так. Вот в сервисах тоже выполнение идёт без сессии, и под специальным сервисным аккаунтом, и тут должно быть что то близкое, ведь во время выполнения задания пользователь не залогинен (а если и залогигнен, то, в общем случае, их несколько, и не тот, который нужен). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 10:01 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
повторное собщение ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 10:44 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
Может агент от локальной УЗ работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 10:45 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
PsyMisha, Так дело в том что как раз у меня спец. учетка в Run As стоит. Проблема в том что когда идет запуск шелдулера он почему то игнорирует эту учетку и идет анонимной аутентификацией и получает от скуля ошибку - Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. А когда я явно в скрипте указываю логин и пароль - то все прекрасно работает. Проблема в том что приходиться светить пароль. А ранее я такую же штуку видел в одной компании у них там все без проблем работало. Прикрепил скрин ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 11:05 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
Den_KP, Ручками под этой учеткой(спец. учетка) тоже все проходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 11:07 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
Den_KP, А зачем стоит галка "Do not store password" - в чем неинтерактивность и автоматизируемость? Проверьте SPN/Kerberos Delegation, как я описал выше. Большего там ничего особого нет Ну и конкретно по "приходиться светить пароль" Его, ессно, не нужно писать в открытом виде в файле Есть такой способ: 1) открыть powershell_ise или командную строку из-под имени того сервисного аккаунта, из под которого будет впоследствии выполняться виндовый джоб 2) Сохранить закриптованный пароль способом ниже Код: sql 1. 2. 3. 4.
3) В том скрипте, который будет запускаться от джоба и из-под аккаунта выше - выдернуть закриптованный пароль: Код: sql 1. 2.
Профит этого способа в том, что получить пароль из файла можно только в том аккаунте, из-под которого он был сохранен на 2м шаге. Даже используя админский аккаунт, отличный от RunAs на 2м шаге - на 3м его получить не удастся Полученный объект-креденшл в моем случае использовался для формирования коннекшн-стринга и доступа к SharePoint Online 365, но ничто не мешает использовать его и для mssql. Тот же самый Credential в итоге, который можно привязаться и к System.Data.SqlClient.SqlCredential ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 11:19 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
PsyMisha, SPN/Kerberos админы посмотрели, сказали галочка стоит. По шеллу попробую думаю. Вообще все очень и очень странно...... Отпишусь как разберусь))) Огромное спасибо за помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 11:50 |
|
Ошибка анонимной аутентификации с помощью Windows Task Schelduler
|
|||
---|---|---|---|
#18+
Den_KP, Иван, Вы похоже попали в точку. После того как убрал галочку не сохранять пароль, джоб стал работать. Правда пока криво, но думаю это уже не беда Дает ошибку, на последнем инстансе. Invoke-Sqlcmd : Arithmetic overflow error converting numeric to data type numeric. At C:\SizeDB\DBSizeCheck.ps1:14 char:1 + Invoke-Sqlcmd -ServerInstance HOST3 $QueryFmt | Export-CSV $expor ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [Invoke-Sqlcmd], SqlPowerShellSqlExecutionException + FullyQualifiedErrorId : SqlError,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand А вообще из пока 3, будет больше Invoke-Sqlcmd -ServerInstance HOST1 $QueryFmt | Export-CSV $exportfile -Encoding UTF8 Invoke-Sqlcmd -ServerInstance HOST2 $QueryFmt | Export-CSV $exportfile -Encoding UTF8 -Append Invoke-Sqlcmd -ServerInstance HOST3 $QueryFmt | Export-CSV $exportfile -Encoding UTF8 -Append ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 12:24 |
|
|
start [/forum/topic.php?fid=46&msg=39911855&tid=1686673]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 150ms |
0 / 0 |