Jul 13 2012
Отдалечен достъп до “MS SQL Server 2008 R2”
В този пост ще покажа, какви настройки е необходимо да се направят, ако желаете да използвате SQL Server 2008 отдалечено, а не само от локалната машина.
Цел
Целта е да инсталираме веднъж MS SQL Server 2008 R2, и след това да го използваме от много клиентски машини (приложения инсталирани на други машини). Както и да може да го достъпваме от различни отдалечени клиентски “SQL Server Management Studio”, като имаме управление и контрол на достъпа с който се връзва Management Studio – то.
Това е нормалния случай в който инсталираме SQL Server върху сървър, в него се създават множество бази от данни за различни клиенти и приложения. Като всеки клиент си има акаунт и може да работи само върху това до което му е даден достъп.
Възникналия проблем с отдалеченото свързване на MS SQL Server 2008 R2
Когато инсталирах 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.”
или от типа “Login failed for user “user_name“. (Microsoft 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…”
Следващата стъпка е да попълним данните за потребителя в меню “General”:
-
зададем име на потребителя в полето “Login name:”
-
Отбелязваме, че потребителя ще е с “SQL Server authentication”, а не с “Windows authentication”, и му задаваме паролата.
-
Махаме отметката на “Enforce password policy”
-
избираме “Default datebase” – може да зададем базата за която е потребителя или да изберем “master”
От меню “Server Roles” може да зададем каква глобална роля да има потребителя, който създаваме. В нашия случай той ще е с подразбиращата се роля – “public”
От меню “User Mapping” избираме потребителя до кои бази да има достъп и какъв да е той за тези бази от данни – каква роля да има за базата от данни. В нашия случай избираме да е “db_owner”, за да може да работи спокойно с базата, да може да създава, трие и да прави каквото желае с тази база.
След което с натискане на бутона “OK” нашия нов потребител е създаден и може да се види в менюто “Logins”
Разрешаване на отдалечен достъп до SQL Server 2008 R2
За да разрешем отдалечения достъп до сървъра трябва да включим няколко опции.
Първата е да разрешим отдалечената свързаност до сървъра “remote connections to the server”. С десен бутон върху сървъра -> избираме “Properties”
В менюто “Connections” –> “Allow remote connections to this server” трябва да бъде включено
Много важно да непропуснете в категория “Security” да отбележите, че може да се ползва и “SQL Server” за authentication, избира се – > “SQL Server and Windows Authentication mode”, в противен случай дава грешката “Microsoft SQL Server, Error: 18456”.
След което се натика “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 Network Configuration” –> “Protocols for MSSQLSERVER”. Ако ползвате “Express” версия ще ви се покаже тя.
Протокола “TCP/IP” трябва да бъде включен. За целта с двоен клик върху него, се отваря нов прозорец на който на опцията “Enabled” задавате “Yes” или направо с десен бутон на мишката върху “TCP/IP” и избирате “Enable”.
Излиза съобщение, че трябва да се рестартира SQL Sever, за да се приложат направените промени.
Restart MS SQL Server 2008 R2
Един от начините да се рестартира MS SQL Server е от Services на Windows. За целта като включите “Windows Task Manager” от таб “Services” най – отдолу в дясно има бутон “Services…”
След отварянето му се, намирате основния service на SQL Server – “SQL Server (MSSQLSERVER)”, ако сте с Express версията ще пише (EXPRESSSQLSERVER). Може да пише и нещо различно, ако сте сменили името по време на инсталация. След което може да му дадете “Restart” или “Stop” и след това “Start”.
След което имаме отдалечен достъп до SQL Server – а.
Ако все още имате проблеми, проверете и FireWall – а, за повече подробности, как да нагласите FireWall – а, може да погледнете в този блог.