Отдалечен достъп до “MS SQL Server 2008 R2”

В този пост ще покажа, какви настройки е необходимо да се направят, ако желаете да използвате SQL Server 2008 отдалечено, а не само от локалната машина.

ЦелMS SQL Server 2008 R2 logo

Целта е да инсталираме веднъж MS SQL Server 2008 R2, и след това да го използваме от много клиентски машини (приложения инсталирани на други машини). Както и да може да го достъпваме от различни отдалечени клиентски “SQL Server Management Studio”, като имаме управление и контрол на достъпа с който се връзва Management Studio – то.

Това е нормалния случай в който инсталираме SQL Server върху сървър, в него се създават множество бази от данни за различни клиенти и приложения. Като всеки клиент си има акаунт и може да работи само върху това до което му е даден достъп.

Възникналия проблем с отдалеченото свързване на MS SQL Server 2008 R2

SQL Server 2008 Managment Studio LogoКогато инсталирах SQL Server 2008 върху един Windows Server 2008 и опитах да го достъпя, срещнах известни затруднения и повечето информация и съвети при първо търсене в интернет бяха от рода на “Изключете си FireWall – а и няма проблеми” някой по загрижени за сигурността препоръчваха само да разрешим необходимите портове във  FireWall – а.

Е да ама на мен това неми свърши работа просто да изключа FireWall – а. При опит за свързване с “SQL Management Studio”, продължаваше да ми дава грешки от типа “A network – related or instance – specific error occurrend while establishing a onnection to SQL Server.”

SQL Server 2008 error - network image

или от типа “Login failed for user “user_name“. (Microsoft SQL Server, Error: 18456)”

SQL Server Error: 18456

Когато пробвах през приложение да достъпя вече съществуваща база, отново ми даваше грешка.

След по – задълбочено търсене, разбрах какъв е проблема и че при инсталиране по подразбиране настройката за отдалечен достъп е изключена.

Решение на проблема – настройки на MS SQL Server 2008 R2

Създаване на потребител в MS SQL Server 2008 R2

За да осъществите достъп, първо трябва да създадете потребител с който да се връзвате, било то Вие през SQL Management Studio или някое приложение на което му е необходима база. От мерки за сигурност и от гледна точка, че даден потребител трябва да има контрол само над собствените си неща, а и че администратора на SQL Server – а трябва да може да контролира какво се случва се създава потребител с достъп до необходимите му бази и с необходимите му права за всяка база.

За целта след като през “MS SQL Server Management Studio“ влезете в “SQL Server 2008 R2” от лявото дървовидно меню избирате “Security” –> “Logins” –> десен бутон на мишката “New Login…

Management Studio - create new Logins image

Следващата стъпка е да попълним данните за потребителя в меню “General”:

  • зададем име на потребителя в полето “Login name:
  • Отбелязваме, че потребителя ще е с “SQL Server authentication”, а не с “Windows authentication”, и му задаваме паролата.
  • Махаме отметката на “Enforce password policy”
  • избираме “Default datebase” – може да зададем базата за която е потребителя или да изберем “master”

SQL Management Studio - add information for new user

От меню “Server Roles” може да зададем каква глобална роля да има потребителя, който създаваме. В нашия случай той ще е с подразбиращата се роля – “public

SQL Management Studion - set roles on user

От меню “User Mapping” избираме потребителя до кои бази да има достъп и какъв да е той за тези бази от данни – каква роля да има за базата от данни. В нашия случай избираме да е “db_owner”, за да може да работи спокойно с базата, да може да създава, трие и да прави каквото желае с тази база.

SQL Management Studio -User mapping

След което с натискане на бутона “OK” нашия нов потребител е създаден и може да се види в менюто “Logins

SQL Management Studio - Logins

Разрешаване на отдалечен достъп до SQL Server 2008 R2

За да разрешем отдалечения достъп до сървъра трябва да включим няколко опции.

Първата е да разрешим отдалечената свързаност до сървъра “remote connections to the server”. С десен бутон върху сървъра  -> избираме “Properties

SQL Management Studio - Properties

В менюто “Connections” –> “Allow remote connections to this server” трябва да бъде включено

SQL Management Studio - Allow remote connection to this server

Много важно да непропуснете в категория “Security” да отбележите, че може да се ползва и “SQL Server” за authentication, избира се – > “SQL Server and Windows Authentication mode”, в противен случай дава грешката “Microsoft SQL Server, Error: 18456”.

SQL Server Security

След което се натика “OK” и в с “SQL Management Studio” настройките са готови. Излиза съобщение, че трябва да се рестартира сървъра, може да се направи сега, а може и малко на по късен етап след изпълнението на следващата стъпка.

Втората стъпка е да проверим мрежовите настройки са нашия SQL Server – SQL Server Network Configuration”. Това се прави като отворим “ SQL Server Configuration Manager” от “Start” –> ”All Programs” –> “Microsoft SQL Server 2008 R2” –> “Configuration Tools” –> “SQL Server Configuration Manager”.

SQL Server Configuration Manager - Path

След отварянето му, избираме “SQL Server Network Configuration” –> “Protocols for MSSQLSERVER”. Ако ползвате “Express” версия ще ви се покаже тя.

SQL Server Network Configuration

Протокола “TCP/IP” трябва да бъде включен. За целта с двоен клик върху него, се отваря нов прозорец на който на опцията “Enabled” задавате “Yes” или направо с десен бутон на мишката върху “TCP/IP”  и избирате “Enable”.

Enable TCP/IP protocol SQL Server

Излиза съобщение, че трябва да се рестартира SQL Sever, за да се приложат направените промени.

Restart MS SQL Server 2008 R2

Един от начините да се рестартира MS SQL Server е от Services на Windows. За целта като включите “Windows Task Manager” от таб “Services” най – отдолу в дясно има бутон “Services…

Windows Task Manager - Services

След отварянето му се, намирате основния service на SQL Server – “SQL Server (MSSQLSERVER)”, ако сте с Express версията ще пише (EXPRESSSQLSERVER). Може да пише и нещо различно, ако сте сменили името по време на инсталация. След което може да му дадете “Restart” или “Stop” и след това “Start”.

Restart - SQL Server

След което имаме отдалечен достъп до SQL Server – а.

Ако все още имате проблеми, проверете и FireWall – а, за повече подробности, как да нагласите FireWall – а, може да погледнете в този блог.