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

Откуда:
Сообщений: 48
Добрый день.
Столкнулся со следующей проблемой. Есть служба, которая запускает ряд приложений. Одно из них пытается подключиться к БД SQL Server, но подключения не происходит, хотя параметры заданы верно. Если это приложение запустить стандартно (запустить exe-файл самому), то подключение проходит нормально.

Служба SQL Server запущена из под учетной записи "Администратор".
Служба, запускающая приложение, запущена из под системной учетной записи. Пробовал запускать из под "Администратора" - не помогло. К сожалению, приложение не выводит на экран и не пишет в лог причину неудачи.

Кто сталкивался с подобной проблемой? В чем может быть причина?

Windows Server 2012 64, SQL Server 2012
15 дек 14, 14:20    [16998891]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Leonid K.
но подключения не происходит,

И текст ошибки звучит как ...

Leonid K.
хотя параметры заданы верно.

И вы покажите эти параметры ?

Leonid K.
К сожалению, приложение не выводит на экран и не пишет в лог причину неудачи.

Откуда вы тогда знаете, что проблема именно при соединении с SQL Server ?
15 дек 14, 14:23    [16998908]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
Leonid K.
Member

Откуда:
Сообщений: 48
Glory
И текст ошибки звучит как ...

автор
К сожалению, приложение не выводит на экран и не пишет в лог причину неудачи.


Glory
И вы покажите эти параметры ?

"Provider=SQLOLEDB.1;Persist Security Info=True;User ID=[user];Initial Catalog=[db];Data Source=[server];Password=[password]"


Glory
Откуда вы тогда знаете, что проблема именно при соединении с SQL Server ?

Коннект к SQL Server не проходит. Это я понимаю из логов и по визуальной информации, которую выводит приложение: оно выводит прошел коннект или нет, но не выводит причины в случае неудачи. Почему не проходит, я пытаюсь понять. Еще раз обращу внимание, что при запуске исполняемого файла вручную коннект проходит.
15 дек 14, 15:06    [16999234]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Leonid K.
Коннект к SQL Server не проходит. Это я понимаю из логов и по визуальной информации, которую выводит приложение: оно выводит прошел коннект или нет, но не выводит причины в случае неудачи. Почему не проходит, я пытаюсь понять. Еще раз обращу внимание, что при запуске исполняемого файла вручную коннект проходит.

Включаете на MSSQL логирование неудачных попыток соединения и ищите в нем причину.
Если конечно ваше приложение все же добралось до фазы соединения с сервером
15 дек 14, 15:16    [16999307]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
что за приложение у вас? может это не сервис и ему требуется клиентская сессия и рабочий стол?
15 дек 14, 15:20    [16999330]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
Leonid K.
Member

Откуда:
Сообщений: 48
Konst_One
что за приложение у вас? может это не сервис и ему требуется клиентская сессия и рабочий стол?

Это конечно не сервис; обычное оконное приложение, которое запускает самописная служба. Но на тестовом стенде, который аналогичен рабочему (в плане версий ОС, SQL Server и условий запуска), все прекрасно работает. Подозреваю, что дело в каких-нибудь политиках Windows.

Glory
Включаете на MSSQL логирование неудачных попыток соединения и ищите в нем причину.
Если конечно ваше приложение все же добралось до фазы соединения с сервером

Попробуем это сделать, но уже завтра, т. к. на объекте рабочий день уже закончился.
15 дек 14, 15:49    [16999578]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
разрешите сервису взаимодействие с рабочим столом
15 дек 14, 16:10    [16999777]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
Leonid K.
Member

Откуда:
Сообщений: 48
Если имеется ввиду настройка "Разрешить взаимодействие с рабочим столом" на вкладке "Вход в систему" в свойствах службы, то соответствующая "галочка" установлена.
15 дек 14, 16:22    [16999891]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
тогда откройте пользовательскую сессию на сервере, где ваш сервис запущен
посмотрите ещё application events log сервера, может там что есть
15 дек 14, 16:24    [16999912]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
Leonid K.
Member

Откуда:
Сообщений: 48
Получил тексты ошибок.
Клиенту (приложению) возвращается ошибка:
Не удается открыть базу данных "БД" с запрашиваемым именем входа. Не удалось выполнить вход.

На сервере в логах:
Ошибка: 18456, серьезность: 14, состояние: 38.
Login failed for user "sa". Причина: не удалось открыть явно указанную базу данных. [КЛИЕНТ: 127.0.0.1]
16 дек 14, 12:54    [17003843]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Leonid K.
Причина: не удалось открыть явно указанную базу данных.

Разве теперь не все ясно ?
16 дек 14, 12:55    [17003851]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
Leonid K.
Получил тексты ошибок.
Клиенту (приложению) возвращается ошибка:
Не удается открыть базу данных "БД" с запрашиваемым именем входа. Не удалось выполнить вход.

На сервере в логах:
Ошибка: 18456, серьезность: 14, состояние: 38.
Login failed for user "sa". Причина: не удалось открыть явно указанную базу данных. [КЛИЕНТ: 127.0.0.1]


ищите по этому форуму, недавно уже было
16 дек 14, 12:55    [17003854]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
o-o
Guest
интересно, а как это доступность базы зависит от способа запуска приложения?
строка подключеня же не меняется?
короче, ТС, у вас проблемы с базой Catalog=[db], она магически то доступна, то нет
16 дек 14, 13:04    [17003928]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
Leonid K.
Member

Откуда:
Сообщений: 48
С БД вроде все нормально. Проблемы проявляются только с одним приложением, запущенным из-под службы.
Кстати, с ней работает еще несколько приложений. Проблемное написано на С++. Есть 2-ое приложение написанное на С#, запускается той же службой. Так вот это приложение коннектится нормально. Сравнивал строки подключения - практически одинаковые.

С++
Provider=SQLOLEDB.1;Persist Security Info=True;User ID=[user];Initial Catalog=[db];Data Source=[server];Password=[password]


С#
Password=[password];Persist Security Info=True;User ID=[user];Initial Catalog=[db];Max Pool Size=500;Data Source=[server];MultipleActiveResultSets=true


Пользователь, пароль, имя БД, сервер - одинаковые.

Гуглил приведенную ошибку нашел следующее:
автор
* некто пытается подключиться к серверу (причем само подключение успешно) и затем войти в контекст базы которой просто нет на данном сервере

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

БД на сервере есть. Логинюсь под sa, поэтому 2-ой пункт тоже отпадает.
16 дек 14, 13:39    [17004169]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Leonid K.
БД на сервере есть.

На каком сервере ?
На том, с которым пытается соедениться приложение ?
Уберите базу из строки подключения или поставьте master и проверьте, куда попадет ваше приложение
16 дек 14, 13:41    [17004190]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
Leonid K.
Member

Откуда:
Сообщений: 48
автор
Уберите базу из строки подключения или поставьте master и проверьте, куда попадет ваше приложение

Это удастся попробовать уже только завтра. Кроме того:
1. В качестве сервера указано 127.0.0.1. Ошибиться здесь сложно.
2. Смотрели же логи сервера. Если бы коннект шел к чему-то другому, то в логах бы ничего не увидели.
3. Программа, запущенная вручную нормально коннектится. Настройки для подключения берутся из ini-файла, запущенная вручную программа и запущенная службой читают один и тот же ini-файл (это было специально проверено). Различается только способ запуска.
16 дек 14, 13:57    [17004273]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Leonid K.
1. В качестве сервера указано 127.0.0.1. Ошибиться здесь сложно.

серверу еще сложнее ошибиться при определении списка своих баз

Leonid K.
2. Смотрели же логи сервера. Если бы коннект шел к чему-то другому, то в логах бы ничего не увидели.

И что же там в логе ?

Leonid K.
3. Программа, запущенная вручную нормально коннектится. Настройки для подключения берутся из ini-файла, запущенная вручную программа и запущенная службой читают один и тот же ini-файл (это было специально проверено). Различается только способ запуска.

Чудес не бывает. Если сервер говорит, что такой базы у него нет, то значит ее нет
16 дек 14, 14:00    [17004286]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
o-o
Guest
слушайте, это под sa может быть и вовсе не то приложение, мало ли кто ломится еще, а ТС не знает.
предлагаю смотреть профайлером, там в явном виде имя приложения.
или создать тестовый логин, его вписать в строку подключения, и тогда и еррорлоге должен этот логин отразиться.
сдается мне, его там не будет
16 дек 14, 14:00    [17004289]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4248
Leonid K.
Настройки для подключения берутся из ini-файла, запущенная вручную программа и запущенная службой читают один и тот же ini-файл (это было специально проверено). Различается только способ запуска.

Сервис, запускающий программу под какой учеткой работает?
Запустите его под своей учетной записью.
16 дек 14, 14:01    [17004292]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
Leonid K.
Member

Откуда:
Сообщений: 48
Glory
И что же там в логе ?

Извините, но вы читаете сообщения? Вы уже неоднократно задаете вопросы, на которые я давал ответы ранее.
автор
Ошибка: 18456, серьезность: 14, состояние: 38.
Login failed for user "sa". Причина: не удалось открыть явно указанную базу данных. [КЛИЕНТ: 127.0.0.1]

Glory
Чудес не бывает.

Это я понимаю и пытаюсь найти причину.
Glory
Если сервер говорит, что такой базы у него нет, то значит ее нет

Но почему при запуске вручную БД появляется?
o-o
слушайте, это под sa может быть и вовсе не то приложение, мало ли кто ломится еще, а ТС не знает.

Всех клиентов, которые подключаются к БД я знаю. Проблемы с подключением только у одного приложения и время в логе совпадает с попыткой соединения этого приложения. Кроме того, периодически приложение реконнектится и время реконнекта совпадает со временем появления таких записей в логе.
SQL2008
Сервис, запускающий программу под какой учеткой работает?
Запустите его под своей учетной записью.

автор
Служба, запускающая приложение, запущена из под системной учетной записи. Пробовал запускать из под "Администратора" - не помогло.

Логинятся на сервер под "Администратором".
16 дек 14, 14:23    [17004423]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Leonid K.
Извините, но вы читаете сообщения? Вы уже неоднократно задаете вопросы, на которые я давал ответы ранее.

Я то читаю.
Вы нигде не привели лог сервера.

Leonid K.
Но почему при запуске вручную БД появляется?

Потому, что на том сервере, куда вы подключаетесь, база есть.
16 дек 14, 14:27    [17004452]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
Leonid K.
Member

Откуда:
Сообщений: 48
Glory
Я то читаю.
Вы нигде не привели лог сервера.

Это проблематично. Т. к. сервер находится удаленно. Подключиться к нему я не могу. Все данные со слов специалиста, который там находится. Я привел часть лога, в которой находится код ошибки и текст.
Glory
Потому, что на том сервере, куда вы подключаетесь, база есть.

1. Запуск программы вручную и службой происходит из одной и той же папки, запускается один и тот же exe-файл, используется один и тот же ini-файл. Это было проверено. Изменение информации в ini-файле ведет к соответствующему изменению визуальной информации на форме приложения (как запущенного вручную, так и запущенного из-под службы).
2. Программа визуально отображает сервер и имя БД. Кроме того, пробовали указывать непосредственно IP-адрес сервера - не помогло.
И как может получиться, что коннект происходит к разным серверам? Все эти очевидные ошибки были проверены и перепроверены еще до обращения на форум. Если бы решение было настолько тривиально, я бы сюда не обращался.
16 дек 14, 14:44    [17004575]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Leonid K.
1. Запуск программы вручную и службой происходит из одной и той же папки, запускается один и тот же exe-файл, используется один и тот же ini-файл. Это было проверено. Изменение информации в ini-файле ведет к соответствующему изменению визуальной информации на форме приложения (как запущенного вручную, так и запущенного из-под службы).
2. Программа визуально отображает сервер и имя БД. Кроме того, пробовали указывать непосредственно IP-адрес сервера - не помогло.
И как может получиться, что коннект происходит к разным серверам? Все эти очевидные ошибки были проверены и перепроверены еще до обращения на форум. Если бы решение было настолько тривиально, я бы сюда не обращался.

Господи. Вы кого хотите убедить ? Себя или сервер ?
Если сервере, то ему ваши "лекции" не нужны. Уберите имя базы или поставьте имя заведомо существующей базы
16 дек 14, 14:48    [17004613]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
я не удивлюсь, что вся проблема в вашем клиенте , который вы пытаетесь запустить как сервис, но он этого не умеет и скорее всего не видит ваш INI-файл, доступа нет скорее всего, поэтому пытается законнектиться под какой-то дефолтной строкой соединения с неким сервером
16 дек 14, 14:51    [17004643]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к SQL Server из под службы  [new]
Leonid K.
Member

Откуда:
Сообщений: 48
автор
я не удивлюсь, что вся проблема в вашем клиенте , который вы пытаетесь запустить как сервис, но он этого не умеет и скорее всего не видит ваш INI-файл, доступа нет скорее всего, поэтому пытается законнектиться под какой-то дефолтной строкой соединения с неким сервером

Если он его не видит, то каким образом отображает информацию из него? Я на это специально указал в предыдущем сообщении.
автор
Господи. Вы кого хотите убедить ? Себя или сервер ?
Если сервере, то ему ваши "лекции" не нужны. Уберите имя базы или поставьте имя заведомо существующей базы

Попробуем это сделать завтра.
16 дек 14, 14:56    [17004679]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить