Разрешить анонимный доступ к SQL Server 2008

Мне нужно установить «одноразовый» экземпляр SQL Server 2008, чтобы студенты могли тестировать программу в течение нескольких недель. SQL Server 2008 работает на виртуальном экземпляре Windows Server 2008. Сервер не является членом домена. Клиентские компьютеры, которым необходимо подключиться к SQL Server, являются членами домена, как и учетные записи учащихся. Клиентская программа ожидает подключения с проверкой подлинности Windows. Все это было бы очень просто, если бы сервер находился в домене; несмотря на длительные обсуждения с ИТ-отделом школы, этого не произойдет...

Итак: мне нужно настроить SQL Server для приема соединений от этих клиентов. Я не системный администратор, поэтому могу предположить (на основе этой статьи) было:

  1. Включить гостевую учетную запись в Windows

  2. Добавьте «NT AUTHORITY\ANONYMOUS LOGON» к логинам, принятым SQL Server.

  3. Установите «Доступ к сети: разрешить анонимный перевод SID/имени» в локальной политике безопасности.

  4. Добавьте запись реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\TurnOffAnonymousBlock и установите для нее значение 1.

По моим расчетам, это должно было сделать это, но клиенты все еще не могут подключиться. Может ли кто-нибудь дать мне рецепт, как заставить это работать? По сути говоря, SQL Server должен принимать соединения от всех и каждого?

p.s. Не беспокойтесь о безопасности: все это находится за школьным брандмауэром, и я перезапущу экземпляр, когда мы закончим.


person Brad Richards    schedule 17.11.2009    source источник
comment
Возможно ли, чтобы клиент НЕ использовал проверку подлинности Windows? Аутентификация БД намного проще.   -  person brianegge    schedule 17.11.2009
comment
Если действительно нет другого пути, я могу получить доступ к исходному коду, найти строки подключения и изменить их, чтобы использовать аутентификацию SQL. MySQL не подходит, так как это приложение VB, которое широко использует библиотеки Microsoft (SQLDMO и т. д.).   -  person Brad Richards    schedule 17.11.2009


Ответы (1)


Чтобы две машины могли подключиться с помощью проверки подлинности Windows, должно быть выполнено одно из двух условий:

  1. Машины находятся в одном домене или
  2. Машины находятся в одной рабочей группе, и учетная запись Windows имеет одинаковый пароль на обеих машинах.

Если ни то, ни другое не верно, то единственной альтернативой является проверка подлинности SQL (имя пользователя и пароль для SQL Server).

person RickNZ    schedule 17.11.2009
comment
Анонимный или гостевой доступ невозможен? - person Brad Richards; 17.11.2009
comment
Я не уверен на 100%, но я так не думаю. Под прикрытием Windows Auth не использует строки для аутентификации пользователей; он использует SID. Насколько мне известно, SID для встроенных учетных записей отличаются от одной рабочей группы или домена к другой, поэтому несвязанные машины не могут определить, какое имя учетной записи действительно является анонимным. Некоторые проблемы объясняются в следующей статье MS KB, но из того, что вы сказали в своем вопросе, я предполагаю, что вы уже видели это (плюс, в любом случае это относится только к SQL 2005 и Windows Server 2003): support.microsoft.com/kb/839569 - person RickNZ; 17.11.2009
comment
Поскольку это одноразовый экземпляр, рассматривали ли вы возможность запуска SQL 2008 на виртуальной машине? Таким образом, виртуальная машина может находиться в той же рабочей группе, что и ваши ученики. Кроме того, после этого очень легко сбросить настройки. - person RickNZ; 17.11.2009
comment
Кажется, это действительно так: нет возможности разрешить анонимный доступ. Рик, спасибо за ваш вклад! Поскольку я не могу сделать машину членом домена (и я не могу вывести студенческие машины вне, чтобы создать рабочую группу), единственное решение, по-видимому, состоит в том, чтобы получить исходный код и изменить базу данных. строки подключения для использования безопасности SQL. Не идеально, но по крайней мере возможно. Спасибо еще раз! - person Brad Richards; 23.11.2009