|
Проблема делегирования прав (запрос к БД на др. сервере) | ☑ | ||
|---|---|---|---|---|
|
0
SergeyKVM
13.10.11
✎
07:03
|
При попытке из 1С через ВК обратиться к БД (SQL) другого приложения вылетает ошибка:
Ошибка подключения к серверу баз данных [ИмяСервера]! Login failed for user 'NT AUTHORITY\АНОНИМНЫЙ ВХОД Прочитал, что для делегирования прав необходимо вызвать функцию API CoInitializeSecurity(NULL,-1,NULL,NULL,RPC_C_AUTHN_LEVEL_NONE,RPC_C_IMP_LEVEL_DELEGATE, NULL,0,NULL); ИЛИ CoInitializeSecurity( NULL, -1, NULL, NULL, 1, 4, NULL, 0, NULL) Функция как я понял, располагается в ole32.dll пытался вызвать данную функцию через WScript.Shell через DynamicWrapperX Например: Wrap.Register("ole32.DLL", "CoInitializeSecurity",Неопределено , -1,NULL ,NULL, 1, 4,NULL, 0,NULL); при таком вызове выдается ошибка: Типы не совпадают (12) меняю типы на Неопределено, или 0 система вылетает в дамп, или если я ставлю ТГД Собственно в результате возникло 2 вопроса: 1. Как можно делегировать права, чтобы в запросе к серверу сервер понимал логин и пароль от кого запрос. (как можно это сделать средствами Windows-а) у меня стоит Win 7. 2. Как всетаки лучше вызвать эту функцию api и какие передавать параметры |
|||
|
1
Азат
13.10.11
✎
07:15
|
а зачем так сложно? просто через адо незя?
|
|||
|
2
SergeyKVM
13.10.11
✎
07:25
|
(1) нет, структуру базы не знаю (+ др. сложности) Про ADO думал, но это слишком трудозатратно.
есть com компонента стороннего приложения, которая уже реализует нужные мне функции, ее и использую (проблем с запуском данной компоненты на сервере - нет) проблемы возникают при запуске на локальной машине. |
|||
|
3
SergeyKVM
13.10.11
✎
10:16
|
upp
|
|||
|
4
SergeyKVM
13.10.11
✎
10:50
|
Описание функции в MSDN:
HRESULT CoInitializeSecurity( __in_opt PSECURITY_DESCRIPTOR pSecDesc, __in LONG cAuthSvc, __in_opt SOLE_AUTHENTICATION_SERVICE *asAuthSvc, __in_opt void *pReserved1, __in DWORD dwAuthnLevel, __in DWORD dwImpLevel, __in_opt void *pAuthList, __in DWORD dwCapabilities, __in_opt void *pReserved3 ); Делаю Wrap.Register("ole32.DLL", "CoInitializeSecurity","i=pippuupup"); Wrap.CoInitializeSecurity(, -1,, , 1, 4,, 0,); Ругается: Ошибка при вызове метода контекста (Register) Wrap.Register("ole32.DLL", "CoInitializeSecurity","i=pippuupup"); по причине: Неизвестная ошибка я неправильно указываю типы или в чем проблема? |
| Форум | Правила | Описание | Секции | Поиск |