Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SQL Server 2005 и Windows 7 enterprise  [new]
dibr
Member

Откуда:
Сообщений: 11
Не подскажите как можно исправить следующую ситуацию...

Установил SQL Server 2005 Standart Edition (+ SP3) на Windows 7 Enterprise RTM. Все встало корректно. Сервер запускается под аккаунтом Network Service.
Как сказано в BOL только тип запуска Network Service или "доменный пользователь" позволяет работать SQL серверу как любому другому сетевому приложению.
Так оно и было пока рассматриваемый SQL сервер хостился на Windows Server 2003 или Windows XP.

После развертывания сервера на Windows 7 очень нам необходимое взаимодействие сервера c другими машинами в сети не осуществляется!
Подразумеваю, что связана эта проблема с настройками безопасности операционной системы, так как изменений ни в настройках сервера и ни внутри БД не делалось.

Заранее благодарю за помощь.
5 окт 09, 12:16    [7741954]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2005 и Windows 7 enterprise  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36814
dibr
необходимое взаимодействие сервера c другими машинами в сети не осуществляется
Все тут прямо телепаты и сейчас резко догадаются, в чем выражается это ваше "не осуществляется".
5 окт 09, 12:21    [7742000]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2005 и Windows 7 enterprise  [new]
Igor Glushaev
Member

Откуда:
Сообщений: 176
dibr,

А в настройка встроенного в Вин7 брендмауэра исключения для MS SQL прописали?
5 окт 09, 15:58    [7743571]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2005 и Windows 7 enterprise  [new]
dibr
Member

Откуда:
Сообщений: 11
Гавриленко Сергей Алексеевич,

В БД есть clr-процедура (фактически обертка), которая через DCOM стороннего разработчика получает данные с другого SQL сервера. На Windows 7 эта процедура возвращает ошибку (unknown exception) при вызове одного из основных методов этого DCOM-объекта.
Такая же ошибка была на Windows XP и на Windows Server 2003, когда сервер стартовал под Local Service аккаунт.
5 окт 09, 20:47    [7745202]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2005 и Windows 7 enterprise  [new]
dibr
Member

Откуда:
Сообщений: 11
Igor Glushaev,
Исключения созданы на вход и выход для приложения Sqlserver.exe.
Пробовал с отключенным файрволом, то же самое.
5 окт 09, 20:50    [7745209]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2005 и Windows 7 enterprise  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36814
dibr
Гавриленко Сергей Алексеевич,

В БД есть clr-процедура (фактически обертка), которая через DCOM стороннего разработчика получает данные с другого SQL сервера. На Windows 7 эта процедура возвращает ошибку (unknown exception) при вызове одного из основных методов этого DCOM-объекта.
Такая же ошибка была на Windows XP и на Windows Server 2003, когда сервер стартовал под Local Service аккаунт.
И причем тут сервер, если сторонний разработчик умудрился сделать так, что его DCOM возвращает всякие Unhandled Exception?
5 окт 09, 21:50    [7745352]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2005 и Windows 7 enterprise  [new]
dibr
Member

Откуда:
Сообщений: 11
Гавриленко Сергей Алексеевич,

Такая же ошибка вываливается когда сервер хостится на Win XP, 2003 при запуске сервера под аккаунтами без доступа к сетевым ресурсам.

Использование этого же DCOM объекта из любого приложения вне SQL сервера (на любой операционке) возвращает требуемые данные.
Следовательно, проблемы не в DCOM объекте, а в другом:
либо у сервера недостаточно прав на выполнение этих задач;
либо Windows 7 блокирует взаимодействие SQL <-> DCOM <-> SQL где-то на другом уровне.
Какова может быть причина такого поведения SQL server на Windows 7?
5 окт 09, 23:15    [7745543]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2005 и Windows 7 enterprise  [new]
vino
Member

Откуда:
Сообщений: 1191
dibr
Гавриленко Сергей Алексеевич,

Такая же ошибка вываливается когда сервер хостится на Win XP, 2003 при запуске сервера под аккаунтами без доступа к сетевым ресурсам.

Использование этого же DCOM объекта из любого приложения вне SQL сервера (на любой операционке) возвращает требуемые данные.
Следовательно, проблемы не в DCOM объекте, а в другом:
либо у сервера недостаточно прав на выполнение этих задач;
либо Windows 7 блокирует взаимодействие SQL <-> DCOM <-> SQL где-то на другом уровне.
Какова может быть причина такого поведения SQL server на Windows 7?
протестируйте DCOM на этой ОС вне SQL, от своего имени, тогда и увидите, где проблема - в объекте либо в безопасности аккаунта.
6 окт 09, 10:46    [7746474]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2005 и Windows 7 enterprise  [new]
dibr
Member

Откуда:
Сообщений: 11
Разобрался.

Интересно следующее:
1. Когда SQL сервер А (хостящийся на Windows 7) инициирует сетевое взаимодействие с удаленным SQL-сервером (Б) не напрямую, а через ADO, ADO.Net, DCOM он подключается к нему как анонимный пользователь, точнее как "NT AUTHORITY\Анонимный вход" и, естественно, если на сервере Б этот логин отсутствует - соединение не открывается и данные считать нельзя.

2. Когда сервер А хостится на других осях (server 2003, XP) через ADO, ADO.Net, DCOM содинение с удаленным сервером Б открывается и без соответствующей (NT AUTHORITY\Анонимный вход) учетной записи на сервере Б. Подразумеваю, что в данном случае он стучится как "Гость" (как проверить - не знаю).

3. Когда подключаемся через ADO, ADO.Net, DCOM к серверу Б из любого другого приложения (вне SQL сервера и на любой оси) подключение также устанавливается без соответствующей (NT AUTHORITY\Анонимный вход) учетной записи на сервере Б.
6 окт 09, 11:53    [7747002]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2005 и Windows 7 enterprise  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36814
dibr
Разобрался.

Интересно следующее:
1. Когда SQL сервер А (хостящийся на Windows 7) инициирует сетевое взаимодействие с удаленным SQL-сервером (Б) не напрямую, а через ADO, ADO.Net, DCOM он подключается к нему как анонимный пользователь, точнее как "NT AUTHORITY\Анонимный вход" и, естественно, если на сервере Б этот логин отсутствует - соединение не открывается и данные считать нельзя.

2. Когда сервер А хостится на других осях (server 2003, XP) через ADO, ADO.Net, DCOM содинение с удаленным сервером Б открывается и без соответствующей (NT AUTHORITY\Анонимный вход) учетной записи на сервере Б. Подразумеваю, что в данном случае он стучится как "Гость" (как проверить - не знаю).

3. Когда подключаемся через ADO, ADO.Net, DCOM к серверу Б из любого другого приложения (вне SQL сервера и на любой оси) подключение также устанавливается без соответствующей (NT AUTHORITY\Анонимный вход) учетной записи на сервере Б.
Вот уж на что, а на то, под каким логином к серверу коннектятся, он точно влиять не может.
6 окт 09, 12:04    [7747095]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2005 и Windows 7 enterprise  [new]
dibr
Member

Откуда:
Сообщений: 11
Еще мысли по этому поводу. Думаю все "особенности" такого поведения разных операционок определяются самим аккаунтом - "Network Service". В до'Семерочных' осях этот аккаунт имеет другие права и привилегии. Интересно было бы проверить как это все ведет себя на Windows Server 2008 R2.
6 окт 09, 12:05    [7747097]     Ответить | Цитировать Сообщить модератору
 Re: SQL Server 2005 и Windows 7 enterprise  [new]
dibr
Member

Откуда:
Сообщений: 11
Гавриленко Сергей Алексеевич
dibr
Разобрался.

Интересно следующее:
1. Когда SQL сервер А (хостящийся на Windows 7) инициирует сетевое взаимодействие с удаленным SQL-сервером (Б) не напрямую, а через ADO, ADO.Net, DCOM он подключается к нему как анонимный пользователь, точнее как "NT AUTHORITY\Анонимный вход" и, естественно, если на сервере Б этот логин отсутствует - соединение не открывается и данные считать нельзя.

2. Когда сервер А хостится на других осях (server 2003, XP) через ADO, ADO.Net, DCOM содинение с удаленным сервером Б открывается и без соответствующей (NT AUTHORITY\Анонимный вход) учетной записи на сервере Б. Подразумеваю, что в данном случае он стучится как "Гость" (как проверить - не знаю).

3. Когда подключаемся через ADO, ADO.Net, DCOM к серверу Б из любого другого приложения (вне SQL сервера и на любой оси) подключение также устанавливается без соответствующей (NT AUTHORITY\Анонимный вход) учетной записи на сервере Б.
Вот уж на что, а на то, под каким логином к серверу коннектятся, он точно влиять не может.



ВЛИЯЕТ учетная запись "Network Service" под которой сервер запущен.
1. В одном случае сервер А (инициатор подключения через ADO и DCOM и работающий под Network Service аккаунтом на Windows 7) стучится к серверу Б как 'NT AUTHORITY\Анонимных вход'.
2. В другом случае сервер А (работающий под Network Service аккаунтом на Windows Server 2003 и Windows XP) стучится к серверу как ГОСТЬ.
6 окт 09, 12:37    [7747343]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить