看到網上好多人問為什麼我的SQL 2008只能用服務器計算器名登錄,而不能用IP登錄呢?我也遇到過這個問題,看到網上的回答各有千秋,但沒有一個寫得比較便於操作的。經過一番網絡關鍵字(SQL 2008 local 登錄)查找文章,整理,嘗試,終於我的SQL 2008能用IP地址或LOCAL登錄了,在此感謝那些無名英雄。
最後,我的成功過程我不敢一個人私藏,特意整理了下解決過程與大家一共分享。
解決MSSQL 2008不能用IP登錄的問題
前提准備:mssql 2008已安裝好了一個實例(我按默認情況下安裝的實例是:SQLEXPRESS),並安裝了SQL Server Management Studio工具。
為了滿足可以用(local)或IP地址登錄2008,需要以下配置支持:
一、打開“SQL Server 配置管理器”,做如下配置:
1、點開“SQL Server服務”節點
找到我們安裝的SQL服務:SQL SERVER(SQLEXPRESS),雙擊它打開屬性設置對話框,把登錄身份中的內置帳戶選中,並下拉選擇“Network Service”:它的意思是用於網絡服務,這樣一來可以遠程的客戶端就可以重啟這個SQL Server服務了,要不然重啟服務功能只限於本機。
2、點開“SQL Server網絡配置”節點。
再點開“實例名的協議”(我的是SQLEXPRESS的協議)。能看到我的實例是支持Share Memory, Named Pipes, TCP/IP, VIA這幾種協議的。
右鍵點擊“TCP/IP”選擇啟用。再右鍵它選擇屬性,在屬性對話框中,切換到“IP地址”卡片,能看到有“IP1”,“IP2”...“IPAll”這幾類針對IP的設置信息。首先,因為我們目前用不上“TCP動態端口”的功能,所以把這幾類IP的TCP動態端口全設置為空(如果是0的話則表示啟用動態端口功能)。再因為我准備把SQLEXPRESS實例向外提供服務的端口設置為1433(和SQL2000的默認服務連接端口號保持一致性),所以需要針對各類IP把它們的TCP端口一項設置為1433(其實僅僅只需要把IPALL的TCP端口號設置為1433,其它類型的均為空即可)。再把各類IP的“活動”和“已啟用”均設置為“是”。點擊“確定”保存配置。
3、點開“SQL Native Client 10.0配置”節點(如果沒有的話,可能是你的軟件安裝得有問題,或者沒有安裝客戶端工具:SQL Server Management Studio)。
再點擊“客戶端協議”,找到“TCP/IP”,雙擊它打開屬性對話框,設置“默認端口”為1433(和上面配置的端口號只要保持一致即可),設置“已啟用”為“是”。點擊確定保存配置。
4、重啟SQLEXPRESS實例。
二、打開SQL Server Management Studio工具
在連接到服務器操作對話框中做如下配置:
服務器類型:數據庫引擎
服務器名稱:(local) 或 IP地址 或 . 補充:.的意思也是表示本機的意思
再點擊右下角的“選項>>”按鈕,切換到“連接屬性”卡片,在網絡協議一項配置中下拉選擇“TCP/IP”
點擊連接按鈕即可。
打開可以用SA登錄的方法
如果不打開一個用戶(不一定必須是SA),那麼對於不在服務器上的遠程客戶端工具就沒辦法連這個SQL Server服務器了。
一、先用SQL Server Management Studio工具登錄服務器SQLEXPRESS實例(不論是用IP登錄方式還是計算機名登錄的方式)。
二、在根節點上右鍵打開屬性對話框,找到“安全性”節點,打開它,再設置“服務器身份驗證”為“SQL Server和Windows身份驗證模式”,再點擊確定保存配置。
三、展開:根節點->安全性->登錄名->sa. 右鍵sa打開屬性對話框。
1、在“常規”頁中設置sa用戶的密碼,注意密碼不能太簡單,如密碼是sa肯定是通過不了的。
2、在“用戶映射”頁中,確認一下SA用戶有沒有db_owner角色身份。必須要有,要不然sa登錄後什麼高級功能也做不了了。
3、在“狀態”頁中,把“是否允許連接到數據庫引擎”設置為“授予”,把“登錄”設置為“啟用”。
4、點擊確定保存配置。
四、接下來你就可以用SA用戶嘗試登錄了。這和Sql Server2000就很相似了。
特注:
以上觀點均為個人經驗,難免有理解不到位的地方,如有錯誤,望各位大俠們不要用“髒”字罵人 :) ,懇請在回復或留言中指正。