Назад | Перейти на главную страницу

Как разрешить доступ пользователю sql server?

Я являюсь администратором-разработчиком, пытающимся играть, и хочу подключиться к удаленному серверу sql с моей машины разработки, используя пользователя сервера sql ("op_web").

Когда я пытаюсь подключиться из vs2008 Server Explorer, я могу подключиться к серверу, но базы данных не отображаются. Если я подключаюсь с использованием администратора сервера, все базы данных отображаются, как и ожидалось.

Сервер - это относительно новая установка, сделанная мной.

у меня есть

Если я вхожу в систему (локально на сервере) с использованием аутентификации sqlserver management studio / sqlserver и созданного имени входа, я могу отображать и изменять данные таблицы, как и ожидал.

Удаленный доступ не дает мне выбора баз данных.

В Visual Studio на клиентском компьютере я получаю имя сервера, указанное в раскрывающемся списке с обнаруженным сервером sql, и, как уже упоминалось, я могу подключиться с помощью пользователя Windows (учетная запись администратора). Кроме того, я пробовал с другой физической машины с такими же отрицательными результатами. Это не похоже на проблему с брандмауэром, но я попытался на всякий случай отключить брандмауэр сервера, но это тоже не помогло. У меня есть другой сервер базы данных, на котором все работает, и я клонировал все настройки от пользователя к пользователю (так что пахнет так, как будто проблема связана с экземпляром сервера sql, а не с пользователем).

Какие-нибудь указания на то, что я мог пропустить?

(Этот вопрос был задан https://stackoverflow.com/questions/1386223/how-to-allow-access-for-a-sql-server-user)

«Пользователи» SQL Server состоят из двух частей.

  1. Логин на сервере. Определяется как уровень сервера и может быть связан с ролями сервера (например, dbcreator: «Члены фиксированной серверной роли dbcreator могут создавать, изменять, удалять и восстанавливать любую базу данных»). Сопоставьте пользователей Windows с ролями сервера (часть этого выполняется автоматически, но зависит от версии SQL Server.1)

  2. Пользователи базы данных. Они создаются базой данных с учетом ролей базы данных (например, «dbo» для полного управления («владелец базы данных») или «dbreader» для возможности чтения данных). При создании они связаны с логином на сервере.

Вы можете определить роли сервера и базы данных, чтобы дать определенные разрешения).

См. Дополнительную информацию в электронной документации по SQL Server (или в MSDN).

Поэтому вам нужно, используя учетную запись администратора, создать серверный логин для вашей учетной записи Windows и предоставить ему доступ к базам данных, с которыми вам нужно работать. Если вы определяете что-то (таблицы, представления, хранимые процессы, ...), вам действительно нужна роль "dbo" или довольно много работы для более тонкого управления.

Не забудьте протестировать приложение только с тем доступом, который ему нужен (например, это редкое приложение, которое может создавать / удалять / изменять представления или таблицы).


1 В SQL Server 2005 локальная группа администраторов хост-машины сопоставляется с именем входа с ролью сервера «sysadmin», в 2008 вы указываете, какие учетные записи должны быть сопоставлены в настройке).

Чтобы его можно было увидеть в сети (удаленное подключение), вам необходимо убедиться, что для экземпляра SQL Server настроена сетевая библиотека, такая как TCP / IP. Вы можете настроить это с помощью диспетчера конфигурации SQL Server. Если вам пришлось внести изменения, они не вступят в силу, пока вы не перезапустите SQL Server. Теперь, если это именованный экземпляр, вы также захотите убедиться, что служба браузера SQL Server запущена. Это предоставляет TCP-порт клиенту, пытающемуся найти его в отношении именованного экземпляра. И вам нужно убедиться, что в вашем брандмауэре есть исключения для обеих служб.

Что касается вашего входа в SQL Server, если вы попытаетесь войти в систему с помощью SQL Server Management Studio, если вы получите сообщение об ошибке, указывающее, что это не доверенное соединение / учетная запись, ваш SQL Server настроен на использование только проверки подлинности Windows, что означает, что вы можете не подключаемся с использованием входа на основе SQL Server. В вашем случае вы указали, что вы установили его для смешанного режима, чего вы и хотите. Однако если вы не перезапустили SQL Server после внесения изменений, это может быть проблемой. Опять же, это еще одна из тех настроек, которые запускаются только при запуске.

На ошибку Kerberos можно не обращать внимания. Это потому, что только администратор домена или сама учетная запись компьютера (если вы работаете как Nework Service в Windows 2003) может зарегистрировать SPN. Так что, если вы используете что-то еще, эта ошибка появится. В этом случае лучше всего создать SPN вручную, но это не должно вводиться здесь, потому что оно отображается только для проверки подлинности Windows. Kerberos не влияет на вход в систему на базе SQL Server.

Теперь, что касается пользователя SQL Server, можете ли вы подключиться к SQL Server локально, используя SQL Server Management Studio?

Приносим извинения - проблема решена:

Я переустановил весь сервер и первым делом добавил sql-сервер - у меня было подозрение, что VisualSVN, работающий через SSL, разрушает безопасное соединение, необходимое для входа в sqlserver.

На самом деле проблема все еще существовала, но попытка снова отключить брандмауэр фактически решила немедленную проблему.

Я пробил брандмауэр для 1433 / TCP, и все там, где я хочу.

Спасибо за уделенное время ...