Здравствуйте, Ведмедь, Вы писали:
В>Здравствуйте, Vovaman, Вы писали:
В>>>Во первых здесь должно хватить Impersonate В>>>А для Delegate надо еще знать настройки домена.
V>>1) Какие настройки домена влияют на Delegate?
В>Домен должен быть 2000 и выше, включен Керберос, а не NTLM. Остальное не знаю.
V>>2) Impersonate хватило бы только тогда, когда SQL-сервер работает с COM+ компонентом на одной машине
В>Если получится все, то можешь описать, что именно ты настраивал?
Домен 2000, Kerberos включен, но чего-то не хватает.
Попробовал, когда SQL-сервер на той же машине, что и COM+ компонент — все в порядке, коннект к SQL-серверу приходит под аккаунтом клиента, хоть компонент работает под другим аккаунтом — все как надо.
Но если SQL на другой машине — контекст не передается.
Тут, похоже, два возможных решения:
1) либо недонастроил включение Kerberos'а (хотя все галки выставлял, как в статье MSDN написано)
2) либо надо вызвать в компоненте что-то типа CoSetProxyBlanket перед коннектом к базе.
Я когда журнал сообщений смотрел на машине, где компонент крутится, то последовательность была такая:
а) нормальный логон клиента на машину компонента, где крутится компонент (пакет проверки — керберос)
б) неверный логон аккаунта, под которым работает компонент на ту же машину и пакет проверки уже — Negotiate