Не может получить доступ к базе данных SQLServer

Я пытаюсь преобразовать базу данных Access для использования бэкенда SQLServer. Я увеличил базу данных, и все работает над сервером, но я не могу получить доступ к нему удаленно.

Я выполняю SQLServer Express 2005 на Windows Server 2003. Сервер не настроен как контроллер домена, ни подключен к домену. Компьютеры, от которых я пытаюсь получить доступ к серверу, являются частью домена, но нет никаких локальных контроллеров домена. Я в удаленном местоположении, и компьютеры настроены и подключены к домену в домашнем офисе, затем поставлялись нам. Мы обычно входим в систему с кэшируемыми учетными данными и VPN в домашний офис, когда мы должны получить доступ к домену.

Я могу использовать Соединение Удаленного рабочего стола с доступом 2k3 сервер, который выполняет SQLServer. Если я вхожу в сервер со своим именем пользователя, я могу поднять базу данных, получить доступ к ней через Доверительное соединение и работы базы данных. Если я пытаюсь выполнить базу данных локально, однако, я получаю диалоговое окно Server Login. Я не могу использовать Доверительное соединение, потому что мой локальный вход в систему к домену домашнего офиса и не распознан машиной SQLServer. Если я пытаюсь использовать имя пользователя/пароль, которое локально для SQLServer, я добираюсь, вход в систему привел ошибку к сбою. Я попытался ввести имя пользователя как "имя пользователя", "рабочая группа/имя пользователя" (где "рабочая группа" является названием рабочей группы на SQLServer), "sqlservername/username" и "username@1.2.3.4", где "1.2.3.4" IP SQLServer. Во всех случаях я добираюсь, вход в систему привел ошибку к сбою. Как я сказал, я могу войти в сервер через Соединение Удаленного рабочего стола с тем же именем пользователя и паролем и использовать базу данных, таким образом, полномочия для имени пользователя, кажется, корректны и для удаленного соединения и для доступа к базе данных. Не уверенный, куда пойти отсюда и любая помощь ценилась бы.

2
задан 15.03.2010, 10:53

2 ответа

Вы и включили соединения TCP/IP и разблокировали все соответствующие порты (я думаю 1433, но я думаю, что он изменяет/автоматически увеличения) на Вашем брандмауэре?

Наконец, если Вы хотите доступ рабочей группы, удостоверьтесь, что SQL-сервер установлен на смешанный доступ режима и не просто интегрированную защиту. Кроме того, Вы, возможно, должны вручную создать логины для каждого пользователя / группа в SQL-сервере.

0
ответ дан 12.12.2019, 00:31

Фон

Microsoft SQL Server поддерживает два различных метода аутентификации: аутентификация SQL Server и аутентификация Windows. Важно понять то, что различие состоит в том, чтобы настроить SQL Server.

Аутентификация SQL Server требует, чтобы сам SQL Server поддержал базу данных имен пользователей и паролей, которым предоставляют доступ к базе данных. Процесс SQL Server ответственен за аутентификацию пользователей путем сравнения имени пользователя и пароля (хеш) против его собственной базы данных. Этот метод входа в систему не позволяет единую точку входа, потому что это не интегрируется с Windows, и учетные данные, которые Вы обеспечиваете, абсолютно не связаны с учетными данными учетной записи Windows (домен или локальны).

Аутентификация Windows использует стандартную аутентификацию Windows для доступа к базе данных. SQL Server все еще ответственен за авторизацию ("Bob, позволен войти?"), но Windows теперь становится ответственным за аутентификацию ("Это действительно Bob?"). Вы не можете ввести учетные данные при использовании аутентификации Windows; это - то, почему имя пользователя и поля ввода пароля отключены в Studio управления SQL Server при выборе аутентификации Windows. Какой бы ни пользователь, которого выполняет клиентская программа, как пользователь, который аутентифицируется в SQL Server (можно переопределить, при помощи которого аутентифицируется пользователь runas /netonly).

Когда программа пытается получить доступ к SQL Server через аутентификацию Windows, SQL Server просит, чтобы Windows аутентифицировал пользователя. Если это - локальный пользователь, Windows проверяет свою базу данных локального пользователя и возвращается да или нет. Если учетная запись является учетной записью домена, и компьютер соединен с любым доменом, Windows руки прочь к Active Directory для аутентификации. Active Directory проверит пользователя, если он будет существовать где-нибудь в доверяемом лесу (или текущий домен, или в домене, которому доверяют).

Ваша ситуация

Ваша копия SQL Server работает на недоменном компьютере. Когда Вы Удаленный рабочий стол в компьютер, Вы запускаете программы как локальный пользователь. "При Использовании Доверительного соединения" (который действительно означает "Аутентификацию Windows использования"), Windows знает, кто локальная учетная запись - и проверяет его. SQL Server затем предоставляет Вам доступ.

Когда Вы запускаете программу на присоединенном доменом компьютере и пытаетесь пройти проверку подлинности через аутентификацию Windows, Вы пытаетесь пройти проверку подлинности к недомену, использующему компьютеры доменные учетные данные. Недоменный компьютер не знает, как пройти проверку подлинности через домен (по определению, он не доверяет домену), таким образом, аутентификация перестала работать.

Возможные решения

  1. Используйте аутентификацию SQL Server. Используйте инструмент, такой как Studio управления SQL Server для создания логинов SQL Server для каждого пользователя, которому нужен доступ. Вы не сможете использовать флажок "Use Trusted Connection", и пользователи должны будут всегда вводить свои учетные данные для SQL Server. В зависимости от того, какая программа пытается получить доступ к SQL Server, она может предоставить некоторый метод для сохранения учетных данных в реестре, или пользователи защищают локальное устройство хранения данных, таким образом, пользователь не должен вводить их каждый раз.

  2. При выполнении Studio управления SQL Server локально выполните его с runas команда как таковая:

    runas /user:username /netonly "C:\Path\to\SSMS.exe"
    

    Это позволит Вам использовать аутентификацию Windows, потому что вместо того, чтобы передать Ваши зарегистрированные учетные данные, Вы передадите учетные данные для учетной записи "имени пользователя". Эта учетная запись должна быть той, которая существует на целевой машине.

  3. Соедините компьютер, выполняющий SQL Server к домену и использованию. (Вы, возможно, также должны были бы выполнить SQL Server как учетную запись домена, а не локальную учетную запись, но я не уверен.) В той точке SQL Server смог бы аутентифицировать пользователей, использующих Active Directory, и "Используют Доверительное соединение", будет работать, не вводя учетных данных. Конечно, необходимо будет все еще решить, какие пользователи разрешены получить доступ к базе данных; можно использовать Studio управления SQL Server для этого.

  4. Продвиньте сервер, выполняющий SQL Server к контроллеру домена совершенно нового домена (которых это - единственный член). Затем можно создать доверие между этими двумя доменами, таким образом, компьютер SQL Server может отправить учетные данные в другой домен для аутентификации, и аутентификация Windows будет работать. Никакие учетные данные не должны быть введены. Необходимо будет все еще авторизовать пользователей в Studio управления SQL Server.

1
ответ дан 12.12.2019, 00:31

Теги

Похожие вопросы