Microsoft SQL Server 2008 Express安裝與簡介

一、序:種子


  2008年9月,微軟發表了SQL Server 2008,SQL Server 2008剛發表時不管是相關工具、說明文件都還很不充足,例如,如果你在一開始就安裝SQL Server 2008 Express,安裝後你會發現:「英雄無用武之地」。因為SQL Server 2005的管理工具根本無法連線到SQL Server 2008,管你是Windows驗證模式還是混合驗證模式。等到SQL Server 2008把管理工具從套件分離出來,又是一段時間之後的事。

  而到現在為止不過10月的時間,不論是工具、說明文件等,都已經相當完整,而且SQL Server 2008 Service Pack 1都已經出來了,這一次我想做一個細部的介紹,而不是下一步、下一步的介紹。

當種子掉到泥土裡


  台灣首富郭台銘說:「阿里山上的神木之所以大,四千年前當種子掉到泥土裡時就決定了」。

  我可以這種說:「資訊系統的種子在安裝時就決了日後的大小。」例如作業系統的磁碟分割。好的系統磁碟分割規劃,能讓你的系統在相同的硬體規格之下,不論在效能或穩定硬是比不好的磁碟分割要來的好。

  我模擬一個常有的情況,如果你只有一台伺服器,又要架網站、又要架FTP、又要架資料庫。

規劃一、
    C:\ 作業系統
    D:\ wwwroot、ftproot、dbroot

規劃二、
    C:\System
    D:\Temp
    E:\wwwroot
    F:\ftproot
    G:\dbroot
    H:\Logs

  系統磁碟分割(Partition)規劃,我可以依幾個大方向來談,一、如果預算充裕,最好是一台伺服器執行單一工作,這樣的整體系統在規劃時也比較簡單;差一點,或許可以使用現在很火紅的虛擬化技術,買幾台強大伺服器,然後導入虛擬化作業,這部份的磁碟分割規劃也簡單,反正這些虛擬化後的Server都可以用「檔案」的觀念來看,搬來搬去很方便,事後的新增硬碟也很簡易方便。

  那在預算有限,又需要在單一伺服器提供許多服務,又沒經費導虛擬化,那一開始的規劃就很重要。伺服器的硬體要好一點,RAID更是基本,而進系統前的Partition Plan就是重點。

  以上述範例,可以簡單看出,我將系統整個區分為:作業系統及程式區、伺服器服務區、暫存區、日誌區。

作業系統及程式區


  即一般Windows系統裡的「C:\」,這裡面只有作業系統及必要程式,我所謂必要程式例如「FTP Server」、「Database Server」…之類的程式。

伺服器服務區


  這台伺服器需要提供什麼服務,而且最好每個服務獨立一個Partition。一開始你就要事先預估一下每個服務內容所會佔用的空間容量大小來安排比例。我們假設上述是專門給User下載資料的FTP檔案伺服器,User透過Web網頁找到他們想要的資料,然後透過資料庫來管理下載的Link及做一些統計的動作。這樣分析下來,你會發現,wwwroot及dbroot都不用太大,而ftproot必須大一點,容量空間比例上我會這樣設計「wwwroot 20%、dbroot 20%、ftproot 60%」。

暫存區


  這是我多年的習慣,不管在個人電腦(PC)、筆記型電腦(NB)、伺服器(Server)都一樣,都會有一個獨立的暫存區。一般人不知道,我們作業系統從安裝完畢之後,接下來你不管是執行程式、新增/刪除程式、上網…都會產生一堆的暫存檔案,這些檔案大小不一且雜亂無章。很常聽到一句話:「奇怪,為什麼電腦用久了,就會越來越慢?」其實可以說是這堆暫存檔案是造成的原因之一,它們會使磁碟資料結構鬆散,增加磁碟搜尋資料、讀取資料的時間,造成系統效能的降低,而且預設還全部放在重要的「系統磁碟區C:\」之下。所以我非常建議各位,最好建一個暫存資料磁碟區,把系統預設的Temp目錄修改到這個Temp Disk,讓系統重要的C:\保持單純。

日誌區


  這部份有點像暫存區,但不同的是暫存區的資料沒有重要性,而日誌區的資料是有重點性。像我們伺服器所提供的每一項服務幾乎都有「日誌Log」的功能,Log這個東西也是多又雜,也是大小不一,也容易造成磁碟資料結構鬆散。全部暫存資料的缺點它都有,但有一點不同,它的資料是非常有價值的,尤其是在系統出問題時(或出問題前)。所以我也是建議建一個專門放各種日誌檔案的分割區,這樣也方便統一管理。

  我很少很少看到有人或有書在資料庫跟你談Partition,或許這不是資料庫管理人員的事,我們安裝時只是沒大腦的下一步下一步的按,其他什麼都不管,反正資料庫能Run,管他的!

  我們在安裝SQL Server 2008時,其實是有許多小細節的,如果你能注意到這些小細節且做微微調整,不但整個資料庫的效率馬上提升,而且更安全。例如在後面會介紹「伺服器組態」裡「定序」,很少人會去修改,也沒有去了解組態值的意義,但當你去做了解,而且做一些些小修改後,就能馬上提升資料庫效率,而且更重要的是,很多設定必須在安裝時就決定,而且決定了就不能更改,這就是種子。


二、安裝準備--作業系統環境


  以入門而言,Microsoft SQL Server 2008 Express(以下除非特別註明,不然2008 Express指的就是SQL Server 2008 Express版本)是個非常棒的學習平台,而且全面使用.Net Framework技術。

  在開始安裝2008 Express之前,我們必須先針對「作業系統」進行一些工作之後才能開始安裝。簡單的說,因為從SQL Server 2008版本開始(版本代號10.0)完全使用.NET Framework技術所開發而成的,所以你的作業系統必須先有.NET Framework執行環境才行。也因如此,所以之前2005 Express版本的SSMSE管理工具無法管理2008 Express版本。但如果你安裝完2008 Express版本及2008 Express SSMSE管理工具,是可以向下相容管理2005 Express。

關於Express的版本


SQL Server Express (x86 和 x64)


  單純只有SQL Server Express資料庫系統。與with Tools, with Advanced Services兩版本最大差異就是沒有SQL Server Management Studio 2008 Express(SSMSE)管理工具。也就是說,如果你的這台資料庫伺服器只需要讓遠端Client連接進來進行相關作業,根本不會有本機使用SSMSE管理工具的機會,那就很適合這個版本,小又單純。

SQL Server Express with Tools (x86 和 x64)


  這是2008 Express + SSMSE管理工具的版本。也就是你有需要在資料庫伺服器本機做一些組態設定…等相關操作,那你就安裝這個版本。

SQL Server Express with Advanced Services (x86 和 x64)


  除了SQL Server Express與SSMSE管理工具外,還提供「全文索引」及「報表伺服器」兩大功能。

  註:詳細SQL Server 2008版本功能差異::點擊這裡

  在2008 Express一推出時,只有with Tools及with Advanced Services 兩種選擇,沒有獨立的2008 Express及SSMSE工具可以下載。而我有些伺服器只需要安裝2008 Express,而Client只需要安裝SSMSE管理工具,相當不方便,不需要SSMSE的也要裝,不需要2008 Express也要裝。不過現在都相關工具都已經相當完整了,先考慮清楚你所要使用的版本,因為安裝的功能越多,消耗的系統資源就越多。後續我們會以「SQL Server Express with Advanced Services (x86 和 x64)」這個版本來做安裝前環境準備動作及安裝示範。

2008 Express的限制


  在開始進入安裝之前,我們要先了解2008 Express的一些限制。在2008 Express中除了進階軟體功能的限制外(例如:壓縮),另外更重要的就是硬體上的限制,在功能差異方面,請參考上一節的註解「SQL Server 2008版本功能差異」。而2008 Express硬體的限制延續2005 Express一樣的限制:

  • CPU數目:1
  • 記憶體上限:1 GB
  • 64位元支援:Windows on Windows (WOW)
  • 資料庫大小:4 GB

  CPU數目是說實際主機版上的實體數目,也就是2008 Express最多能使用一顆實體CPU來作業,但以現在隨便一顆實體CPU都是二核心、三核心、四核心…,這方面你到是不用擔心,而且如果這種多核心等級CPU還不夠你操的話,那你不太應該往下看了,太浪費你的時間了。記憶體上限的意思是說2008 Express最大只能使用1 GB的記憶體。老實說,我感覺Microsoft在這方面有點小氣了,我個人感覺2 GB是2008 Express比較實用的數字。其中比較要注意的是「資料庫大小」這一個項目,Express版本的4 GB限制是指「單一個DataBase檔案(*.mdf)」,例如我們常當成範例的Northwind.mdf(北風資料庫),最大只能成長到4 GB,在Express版本中的每個資料庫檔案大小都會有4 GB的限制,但是還是有破解的方法。

  Crack,破解嗎?沒有啦,是避開的方法,這是所有硬體限制裡可以「避」的部分,避的方法是:「多開幾個資料庫檔案(*.mdf)來避開這項限制」。如果你注意看,我寫的限制是「單一mdf檔案的大小」有限制,所以如果你預計你的資料庫大小會超過4 GB時,除了購買正式版外,在2008 Express上你可以多開幾個資料庫檔案避開這部分的限制,例如:products.mdf、members.mdf,但唯一麻煩可能是程式就要設計成「跨資料庫存取」的方式。

確認作業系統及硬體



支援的作業系統
  • Windows Server 2003 Service Pack 2
  • Windows Server 2008
  • Windows Vista
  • Windows XP Service Pack 2

32位元系統,硬體


  • CPU:備有 Intel 或相容 1GHz (或更快) 處理器 (建議使用 2 GHz 或更快,只支援單一處理器) 的電腦。
  • RAM:最少 512 MB RAM (建議 1 GB 或以上)。
  • Disk:1.9GB 可用硬碟空間。

64 位元系統,硬體


  • CPU:1.4 GHz 或更高等級處理器 (建議使用 2 GHz 或更快,只支援單一處理器)。
  • RAM:最少 512 MB RAM (建議 1 GB 或以上)。
  • Disk:1.9 GB 的可用硬碟空間。

環境準備



方法一:傳統安裝法

  什麼是傳統安裝法,簡單說,就是拿著DVD安裝,不然就是上Windows Download把所有必須的程式及套件下載回來安裝。

  前面說過,在開始安裝SQL Server Express之前,必須先準備好作業系統.NET Framework環境,所以我們必須先行下載以下套件(最好依順序安裝):

  • Microsoft .Net Framework 3.5 SP1:下載點(啟動載入器)、下載點(完整套件)
  • Windows Installer 4.5:下載點 (需重開機)
  • Windows PowerShell 1.0:
    x86 版 Windows XP Service Pack 2 的 Windows PowerShell 1.0:下載點
    x64 版 Windows XP Service Pack 2 的 Windows PowerShell 1.0:下載點
    x86 版 Windows Server 2003 Service Pack 1 的 Windows PowerShell 1.0:下載點
    x64 版 Windows Server 2003 的 Windows PowerShell 1.0:下載點
    Itanium 版 Windows Server 2003 Service Pack 1 的 Windows PowerShell 1.0:下載點
    x86 版 Windows Vista 的 Windows PowerShell 1.0:下載點
    x64 版 Windows Vista 的 Windows PowerShell 1.0:下載點

  要比較注意的只有PowerShell一項,請選擇正確的版本對應的PowerShell,進入下載面畫後,你可以依需求切換PowerShell的語系版本,也就是說,假設我不要使用繁體版本,我習慣看英文,那就可以選擇安裝英文版本的PowerShell,安裝之後,以後只要有關PowerShell的任何訊息都會以英文來顯示。重點是,對應的作業系統版本要對,語系看你喜好。

  另外只有一種情況下可以不安裝PowerShell,只有單純安裝「SQL Server Express」這個版本時,可以不下載及安裝PowerShell,其他兩個2008 Express版本(with Tools及with Advanced Services),或單獨安裝SSMSE管理工具,都需要安裝以上三個套件。

SQL Server 2008安裝失敗的原因


  如果你乖乖的安裝好以上三個套件,然後開始安裝,如果有機會,你會發現一件很好玩的事,SQL Server 2008不管你怎麼安裝,SQL Server 2008就會是安裝失敗,怎麼樣都裝不起來。

  哈,發生了什麼事,我已經安裝過不下N次2005/2008 Express,SQL Server 2005/2008,都沒有發生過這種情況,而且我在一台剛灌好完全乾淨Windows Server 2003伺服器上安裝,怎麼試都找不出問題點,又在一台Vista上測試,還是一模一樣。我先排除硬體的問題,最後問題出現在Microsoft .Net Framework 3.5 SP1這個「最新」的套件上,Microsoft .Net Framework 3.5 SP1裡會幫我們安裝一個最新版本MSXML 6 SP2的套件,這個MSXML 6 SP2版本會造成SQL Server 2008安裝失敗,真是害死人的MSXML 6 SP2,這個問題讓我花了整整一周時間。所以在進行安裝之前,還才必再做一件事:

  安裝SQL Server 2008 (含Express)完成之後,再上MSXML 6 SP2版本就不會有問題。

  • MSXML 6 SP2:使用Windows Update升級即可。

  註:以上問題,除了SQL Server Express with Service Pack 1這個版本不會出現安裝失敗問題,是可以正常安裝。另外,你如果是在XP環境下,預設是不會安裝MSXML 6 SP2,所以不會有安裝失敗的問題。

2008 EXPRESS下載



  廢話一堆,進入主題吧。
  完成安裝環境的準備後,選擇你所需要的版本下來回來,然後就可以正式進入安裝SQL Server 2008 Express。

SQL Server 2008 Express


  • SQL Server Express Service Pack 1:下載點
    Microsoft SQL Server 2008 Management Studio Express:下載點
  • SQL Server Express with Tools:下載點
  • SQL Server Express with Advanced Services:下載點
  • SQL Server Expres Service Pack 1:下載點
  • Microsoft SQL Server 2008 線上叢書 (2009 年 5 月):下載點
  • 範例和範例資料庫 (英文):下載點

  先選一個符合你需求的2008 Express版本來安裝。如果你選擇SQL Server Express這個版本,建議直接選with Service Pack 1的版本套件,可以各自獨立在個別電腦設備安裝,或是原本資料庫伺服器沒有使用SSMSE的需求,後來有了,那就可以後來再加安裝上去即可(要先裝PowerShell)。如果2008 Experss及SSMSE都安裝了,那就是2008 Express + SSMSE = SQL Server Express with Tools 這個版本套件。

  2009年4月7日SQL Server Express推出Service Pack 1,所以你安裝with Tools及with Advanced Services版本,切記,安裝之後一定要快上Service Pack 1。除了Service Pack很重要之外,在學習SQL Server最重要的就是這本「Microsoft SQL Server 2008 線上叢書」,這是你玩SQL Server最重要的一本參考書,它方便你在本機閱讀及查詢。這是一本可以對抗外面書局所有關於SQL Server的書(也包含本文),包山包海,要什麼有什麼,只差你用多少心思去了解它。

  在「範例和範例資料庫」裡你可以下載到一大堆的範例和範例資料庫,這些資料庫可以讓你拿來習慣用,不用怕把資料庫毀了,努力玩、用力玩、盡量玩,玩的越多,得到的就越多。

方法二:全自動安裝法


  這個方法二可強大了,這可以說是Microsoft IIS方面一個大進步。如果你認真的看最近的微軟發表產品,你會發現功能已經到了強大的境界,但強大的東西就有一定複雜性。安裝一個SQL Server,以前只要下一步加下一步就可以完成的東西,現在必須先安裝A再安裝B還有C,而且安裝時還要注意東注意西。所以微軟也注意到了我們的需求,所以Microsoft推出了一個稱「Microsoft Web Platform Installer(WPI)」的軟體,這個軟體可好用了,它可以「全自動」幫你安裝Microsoft Web Platform(微軟網站平台,說的很白了)所需要的任何東西。只要這個WPI所支援的產品,都可以透過它來自動安裝及使用。

Microsoft Web Platform Installer:下載點 (目前最新2.0 RC版本)

  下載回來會是一支wpilauncher.exe程式,執行安裝:

Microsoft Web Platform Installer安裝初始畫面
  它會依你的作業系統平台顯示你可以安裝的項目。

  第一部分顯示「What’s New?」
  也就是現在有什麼新的產品、軟體可以在Microsoft的網站平台安裝執行。你可以很清楚看到ASP.NET MVC 1.0、SQL Server Express 2008 with Service Pack 1、SQL Server 2008 Management Studio Express,「PHP 5.2.10」,你沒有看錯,現在Microsoft與開放原始碼的關係越來越好,連PHP都直接支援。

Microsoft Web Platform Installer中What's New?
  第二部分顯示「Web Platform」,也是就網站平台部分。

Microsoft Web Platform Installer中網站平台

  這部分的重點在後面的「Customize」,例如我們點擊Web Server後面「Customize」,出現下例自訂選項,

Microsoft Web Platform Installer網站平台的自訂選項
  因為我是在Windows XP上執行,所以出現了IIS 5的選項,在不同平台會出現不同選項,你可以看到除了IIS之外,我還可以安裝其他相關套件,例如安全性的URL Scan 3.1。所以每一項Customize都要好好進去看看。

 第三部分是「Web Applications」,網頁應用程式。也就是Microsoft幫你把目前網路上與.NET Framework配合的很好的應用程式幫你找好也列表出來,這裡面全是當紅的應用程式。你只要選擇你想安裝的應用程式即可,WPI就會自己幫你安裝起來。

Microsoft Web Platform Installer的網站應用程式

  WPI在安裝之後,會在你開始程式集裡留下一支WebPlatformInstaller.exe程式,你可以隨時執行,WPI會去同步網路上的資訊,看是否有出新的軟體或套件,讓你節省很多不必要的時間。

  看完後,有沒有很心動

三、安裝SQL Server 2008 Express


  這裡我們使用傳法安裝法來安裝SQL Server Express with Advanced Services來練習安裝。

1、安裝前檢查



  當你開始安裝之前,先啟動「System Configuration Checker」工具,檢查一下,此工具就是在檢查我們前面環境準備的東西。

2、檢查結果
  基本上只要沒有「失敗」項目即可。


  請注意,這裡檢查不出來「MSXML 6 SP2」的問題。

3、選擇「安裝」,然後選擇「新的SQL Server獨立安裝」


4、安裝程式會再一次進行檢查


5、輸入產品金鑰
  由於我們是安裝2008 Express版本,所以不用輸入,按「下一步」就好了。


6、勾選「我接受授權條款」,按下一步;
  註:為什麼繁體版的SQL Server會出現簡體的授權條款?


7、按下「安裝」讓程式開始進入正式安裝過程;


8、安裝程式再一次檢查:


9、選擇你所需要的功能;


  這裡我們雖然選擇SQL Server Express with Advanced Services版本來安裝,但這裡的「特徵選取」有點像「自訂」的味道,舉例說,如果我只選「Database Engine Services」與「管理工具 – 基本」,那其實就是安裝「SQL Server Express with Tools」是一樣的意思。

  執行個體功能,最少要選「Database Engine Services」。共用功能裡的「管理工具 – 基本」就是我們說那SSMSE管理工具。以上兩個是建議必定要安裝的,練習用就「全選」,其他看你的需求了。

  這邊還有一個重點,就是「共用功能目錄」。等一下在安裝過程裡,你可以看到在安裝2008 Express過程中,是可以把核心系統與其他功能系統分開安裝到不同目錄,例如把「執行個體」與「共用功能」分開安裝在不同的Partition,所以如果一開始你就有單獨規劃屬於資料庫的Partition,那麼建議是可以把這裡的目錄指向專屬的Partition去。

10、執行個體組態


  這裡先讓我們了解一下什麼是執行個體?執行個體是一個讓我們在同一台伺服器裡可以同時安裝、操控數個資料庫的技術。這裡指的資料庫可不是資料庫檔案(*.mdf),是資料庫(Database),這樣說好了,像我的電腦裡,有SQL Server 2005,後來又安裝了SQL Server 2008,那電腦裡的應用程式,怎麼知道要跟那個資料庫做連接、做資料處理?

  重點就在「執行個體」,簡單說,你就把執行個體看成每一個「資料庫的名稱」,例如,我這次安裝的資料庫名稱叫「SQLEXPRESS」,然後,我在同一台電腦再安裝一次SQL Server 2008,然後我給他執行個體的名稱為「SQLBruce」。然後只需在使用時(SSMSE、網頁、應用程式都一樣)指定你所要「連接」的資料庫執行個體名稱,這些程式就知道要跟那一個資料庫來進行連接及處理的動作。

  預設執行個體:此執行個體是藉由執行它的電腦網路名稱來識別。一部電腦中只能有一個是預設執行個體。它能讓較早SQL Server版本來使用SSMSE來連線到預設執行個體。

  具名執行個體:此執行個體是以電腦的網路名稱加上執行個體名稱來識別,格式為{Computer Name}\{Instance Name},例如:

  DS\SQLExpress
  DS\SQLBruce
  以上是標準使用{Computer Name}\{Instance Name}的格式。

  192.168.1.10\SQLExpress
  192.168.1.10\SQLBruce
  你也可以使用IP來代替{Computer Name}部分。

  DS.yourdomain.com\SQLExpress
  DS.yourdomain.com\SQLBruce
  你也可以使用Domain來代替{Computer Name}部分。IP與Domain在遠端連線時會使用到。

  .\SQLExpress
  .\SQLBruce

  這個重要,這個「‧」(點)代表「本機」的意思。如果你是在本機作業,那就可以使用這個簡寫「‧」來代替{Computer Name},例如,你的資料庫與網站是在同一台伺服器,那麼網站內與資料庫連接相關程式碼,就可以使用這個「‧」來簡化程式碼

  另外注意,SQL Server的系統名稱(sysnames)與保留名稱不可作為執行個體名稱,例如「default」就不行,因為它是安裝程式所使用的保留名稱。

  如果是練習用,我建議用原設定值就好,如果是要用在正式的環境,我建議修改預設執行個體名稱,畢竟會玩MS SQL Server的人或黑客也都知道這種預設名稱,如果他要Try,當然會先找懶惰的人下手。多點一保護總是好的。

  執行個體根目錄,共用功能目錄同樣的理由,如果你一開始有規劃資料庫Partition,也是建議安裝目錄指向專屬的Partition去。

11、磁碟空間需求


  綜合以上組態並檢查磁碟空間,這裡你就可以看到除了必要的資料庫系統檔案,我安裝到C:\外,其他共用安裝目錄、執行個體目錄,我全部規劃一個獨立的Partition。

12、伺服器組態


  重點來了,如果你安裝過SQL Server 2000或SQL Server 2005,這裡是跟SQL Server 2000/2005在安裝過程裡比較大差異的地方。

服務帳戶



  在服務帳戶你可以為每個「服務」設定不同的「帳戶」來啟用這個服務。我們知道在Windows系統裡,每個服務都是需用有一個帳戶來啟用,以往的設定都會使用系統預設的帳戶來啟用,但這樣往往造成一個問題,也就是這些預設的帳戶往往是不安全的。而一般我們也會建議使用低權限的帳戶來當成這些服務的啟用帳戶。

  我這裡建議是可以依使用服務的不同,自行建立個別的服務啟用帳號。我在系統裡就另外建了三個一般帳戶「SQLDE」「SQLRS」「SQLFFDL」,密碼一定要用高度複雜性的密碼。

  • SQLDE:SQL Server Database Engine
  • SQLRS:SQL Server Reporting Services
  • SQLFFDL:SQL Full-text Filter Daemon Launcher
  (最好也不用一模一樣,再加點自己的變化)



  我這樣設定,除了簡單就可以看得出來這個帳戶是做什麼用途,也可以減少系統不必要的安全性問題,因為我建立的都是最一般性的帳戶,再加上高度複雜性的密碼,就算黑客拿了也沒什麼用。

  在Windows系統建立帳號之後,回到我們安裝畫面中,依順輸入帳戶名稱及密碼,如果錯了,安裝程式會提醒你,而且也沒有辦法再按下一步。

  在服務帳戶裡還有一個預設停用的「SQL Server Browser」服務。如果你有需要使用遠端連線到SQL Server的話,建議把這個SQL Server Browser改為「自動」啟用。簡單說,這個服務也就是讓Server的資料庫也能讓遠端連線進來進行作業。

  例如我常需要在我的NB或PC上連到遠端SQL Server伺服器,但如果SQL Server這台伺服器沒有開SQL Server Browser的話,那你怎麼連也連不進來,就算設定了port 1433也沒用。

  在這裡還是要再提醒一次,多開一個服務就多一個風險,網路是很不安全的地方,每一次服務的最基本原則就是,有需要才開,沒需要的能關就關。

定序




  伺服器組態的第二個重點,就是定序,其實一般人很少會去動「定序」這裡的設定,如果是我,我也是這樣建議,因為動了就永遠改不回來(其實能改,只是…Big Trouble),但這裡其實是微調整個SQL Server的大地方,有必要加強介紹一下。


  按下「自訂」後,自訂定序的畫面。

Windows定序指示項和排序次序



  你可以從下拉式選單中選出Windows定序名稱,使用不同的定序名稱就會採用相對應的字碼頁(Code Page)。如果有資料庫間複製的需求,所有參與複製的SQL Server資料庫都必須選擇相同的字碼集,因為改變定序必須要重建你的資料庫,這在一個已上線的系統裡是一個非常嚴重的問題,除非你有把握及實力,不然建議使用預設「Chinese_Taiwan_Stroke」選項。

  再定序名稱下方,我們還可以進階選擇要使用的「排序原則」。排序原則會影響到SQL Server儲存資料時的組織方式。

  二進位:使用二進位排序會與其他的排序原則互斥,也就是選擇二進位方式,其他排序原則就無法選擇。二進位是根據字元定義的位元模式排序來比較SQL Server資料表中的資料。二進位會區分大小寫,亦小寫比大寫優先,且區分腔調字,這是最快的排序方式。

  二進位 – 字碼指標:依Unicode資料的Unicode字碼指標排序來比較SQL Server資料表中的資料。對於非Unicode資料則使用二進位排序。

  區分大小寫:預設是沒有區分大小寫。這可以讓前端程式開發人員或後端SQL撰寫時比較容易,且使用者在查詢資料時也不用注意大小寫問題。例如:「select * from orders」正「Select * From Orders」將視為相同的SQL敘述句。這裡還是再提醒一下「安全」的問題,你的方便,也是大家的方便,大家的方便,也是網路上每個人的方便,網路上有好人與壞人,讓壞人方便,也是你要防範的地方。

  使用「區分大小寫」還要注意一個問題,就是資料庫表格中就不能使用大小寫相同的鍵值來當主鍵,這請特別小心。如果想區分大小寫,建議選二進位排序原則,因為這個選項可以得到較好的效率。

  區分腔調字:指定SQL Server區分有口音與沒有口音的字母,例如「a」不等於「á」。

  區分假名:指定SQL Server區分日文的片假名與平假名。如果沒有勾選,SQL Server會將片假名(Katakana)與平假名(Hiragana)視為相同。

  區分全半形:指定SQL Server區分以「單一位元組字元(半形)」和「雙位元組字元(全形)」來表示的同一字元。

SQL定序,用於回溯相容性
  這是為了與較早期的SQL Server 6.5版、SQL Server 7.0版的相容設定。

13、資料庫引擎組態


帳戶提供


  這裡要設定一開始的驗證模式,也就是一開始要使用的登入方式。

  • Windows驗證模式
    Windows驗證接受使用者在登入Windows時獲得驗證,然後再傳送安全性憑證給SSE。而使用者的帳號和密碼只保留在Windows中。當ASP.NET使用Windows驗證時,連接字串不會提供帳號及密碼,只提供使用Windows驗證的指示。適合本機連接使用。
  • SQL驗證模式
    SQL驗證使用儲存在SQL Server中的資料來做使用者驗證。在連接時需提供「使用者名稱」及「密碼」來進行驗證。適合遠端連線使用。
  • 混合模式
    可以自行選擇使用Windows驗證或SQL驗證。

  在安裝過程中,我們建議選擇「Windows驗證模式」,安裝完成後如果有遠端連線的需求,再修改組態為「混合模式」。這樣建議是有原因的,因為如果你在安裝過程裡選擇使用「混合模式」那就必須啟用「內建SQL Server系統管理員帳戶」,我們稱SA帳戶。這在SQL Server早期的版本裡是個大漏洞,原因是早期SQL Server中,系統預設安裝後就有一個權限無限大帳戶sa,而且這個帳戶預設還不用密碼,所以呢,那個時期就出現一堆Scan SQL Server工具,Scan你的網路、你的網站是否有使用SQL Server,然後再試著看你是不是一個「人性來自於惰性」的人,輕輕鬆鬆一個無密碼sa帳戶加port 1433就可以進入無人之地。當然現在這種攻擊少了許多,但是大家還是都知道MS SQL Server裡有個sa帳戶,所以建議還是不要啟用。等安裝完畢,我們進SQL Server再建我們自己的需要的帳戶。

  下方必須指定SQL Server管理員的帳戶,也就是本機在使用Windows驗證模式登入時的帳戶,你可以選擇「加入目前使用者」或自行「加入」使用者。我們點擊「加入目前使用者」即可。

資料目錄




  這裡是讓我可以選擇各自資料庫存放的目錄,如果你想要有比較好的效能、比較好的資料保護,這裡建議是分開存放,這也是我一開始跟大家談Partition的關係,SQL Server文件是建議把「資料庫目錄」和「記錄檔目錄」分開存放,所以如果你已經切割出來G:\dbroot、H:\Logs,那你就可以修改這裡的設定,把「使用者資料庫目錄」和「暫存資料庫目錄」存放到G:\,然後把「使用者資料庫記錄檔目錄」和「暫存的資料庫記錄檔目錄」存放到H:\。最後,2008 Express是沒有提供自動備份的功能,但是可以手動備份,這個手動備份建議不要存放在與SQL Server同一顆硬碟,才能達到較好的備份效果。所以最後「備份目錄」對我們的影響不大。這邊所有的目錄路徑只是個預設路徑,未來例如我們在新增資料庫時還是可以自行指定相關路徑。

FILESTREAM




  這裡我引述TechNet文件的解譯:「FILESTREAM 功能提供一個方式來儲存及存取大型二進位值,其方式是透過 SQL Server 或直接存取 Windows 檔案系統。大型二進位值是大於 2 GB 的值。在每天建立的資料中,有許多都是未結構化的資料,例如文字文件、影像和視訊。這些未結構化的資料通常是儲存在資料庫外面 (與結構化資料分開)。這樣的分隔可能會造成資料管理更為複雜。或者,如果資料與結構化的儲存體有關聯,則檔案資料流處理的功能和效能可能會受到限制。

  FILESTREAM 會將 SQL Server Database Engine 與 NTFS 檔案系統整合,其方式是將 varbinary(max) 二進位大型物件 (BLOB) 資料當做檔案儲存在檔案系統上。Transact-SQL 陳述式可以插入、更新、查詢、搜尋及備份 FILESTREAM 資料。Win32 檔案系統介面提供了資料的資料流方式存取。

  FILESTREAM 會使用 NT 系統快取來儲存檔案資料。如此可減少 FILESTREAM 資料可能對 Database Engine 效能產生的任何影響。並不會使用 SQL Server 緩衝集區;因此,此記憶體可用於查詢處理。」

  簡單的說,也就是說你可以把「影、音…」等多媒體資料也存入資料庫中,透過FILESTREAM功能。如果不會使用到,可以先不啟用,需要時可以使用修改組態的方式來啟用FILESTREAM功能。我們先選擇不啟用。

14、Reporting Services


  如果你是安裝2008 Express及2008 Express with Tools是沒有這個畫面,這裡是設定報表伺服器的使用方式。如果你沒有使用到報表伺服器或暫時不會使用到,可以先選第三項。記得,每啟用一個服務就多吃一點效能。我們先選擇第一項「安裝原生模式預設組態」。

15、錯誤和使用方式報告


  這看你自己吧,是否要讓Microsoft收集你的硬體資訊及使用方式。

16、安裝規則


  安裝前的最後一次檢查。

17、準備安裝


  最後確認一下要安裝的2008 Express的功能及項目。


  最後需要一點時間來安裝,安裝完成之後,記的要上SQL Server 2008 Service Pack 1,還有MSXML 6 SP2這個會影響SQL Server 2008安裝的元件。

  到這裡,我們已經完成了整個2008 Express的安裝,但事情結束了嗎?還沒,因為安裝好之後,2008 Express還有許多設定值需要我們去微調一下。例如,要讓2008 Express提供連端連線等功能。

  還有,使用連端連線功能,一定要使用那個不安全port 1433嗎?我想在ASP.NET裡寫存取遠端2008 Express程式,怎麼寫?

四、SSMSE及SQL Server Configuration Manager



  這個部份我們從SSMSE來與2008 Express連線,連線後進行一些組態的調整,讓2008 Express可以開啟混合模式,開放遠端連線,讓管理者可以由遠端與2008 Express連線進行工作。要開放SQL Server達端連線,除了SSMSE外,還需要在SQL Server組態管理員進行一些設定。

SSMSE組態


1、開啟SSMSE管理工具




  「伺服器名稱」:也就是執行個體名稱,記得格式為{Computer Name}\{Instance Name}。還記得那個「‧」嗎?不記得的話,請再回去複習一次。

  「驗證」:如果是在SQL Server本機,我們使用Windows驗證來連接登入即可,如果需要遠端連接才需要使用「SQL Server驗證」。除非是練習機,不然不太可能讓你每天在機房的伺服器旁做本機登入,所以絕大多數而言都會開SQL Server 驗證,換個例子講,當我們使用VWD或Visual Studio寫.NET資料庫相關程式時,就必須使用SQL Server驗證來跟SQL Server做驗證連接,然後在本機Visual Studio開發相關程式,開發好了之後,上傳到伺服器上,基本上資料庫相關程式是連改都不用改,因為你在開發階段就已經將「遠端連線」的相關程式碼寫好了,所以不管你將這支網頁程式放到那裡,基本上它都找得到SQL Server,然後連線,存取資料。

  因為安裝時設定為Windows驗證,所以我們先在本機使用Windows驗證來連接2008 Express。

2、物件總管




  透過Windows驗證連接成功後,你在管理工具左邊可以看到工具項「物件總管」,在物件總管你可以選擇你所要進行的相關操作。另外,透過物件總管,我們也可以同時間操控多台2008 Express,例如下圖,我使用遠端連接到另一台遠端的2008 Express。


.\SQLExpress組態




  我們在最上面.\SQLExpress點滑鼠右鍵,然後選「屬性」,


  切換到處理器頁面,我們能看到我實體是一顆四核心Q9400的CPU,還記得我們的硬體限制嗎?限制的是實體CPU不是多核心的核心數目。


   切換到安全性頁面,這是我們要變更組態的第一個地方,將Windows驗證修改為「混合模式」,也就是「SQL Server及Windows驗證模式」,按確定之後就可以使用SQL Server驗證來遠端連線了嗎?還沒。

  開啟SQL Server驗證模式後,第二步我們還需要設定能使用SQL Server驗證登入的「帳戶」,因為一開始我們就設定Windows驗證模式,所以SQL Server預設的sa是沒有啟用,也不建議啟用

新增登入帳號



  安全性 → 登入 → Mouse左鍵 → 新增登入



  登入屬性



一般



  登入名稱:輸入使用者名稱。如果你要使用Windows驗證,可點擊「搜尋」來搜尋本機Windows帳號。

  驗證模式:選擇此使用者是要使用Windows驗證或是SQL Server驗證來登入。我們選擇SQL Server驗證,底下的密碼相關資訊才會有作用,需要注意是的底下來三個密碼原則:
  1. 強制執行密碼原則:必須使用「強密碼」或「複雜密碼」。增強式密碼長度必須至少七個字元,並包含以下三組的字元:「字母」、「數字」和「符號」。
  2. 強制執行密碼逾期
  3. 使用者必須在下次登入時變更密碼(需勾選「強制執行密碼逾期」才會有作用)
  建議最少使用「強制執行密碼原則」,來減低被攻擊成功的機率。


  預設資料庫:可設定此使用者登入後預設使用的資料庫。我們順便簡介一下SQL Server系統資料庫:

  • master:
    主要資料庫,系統表格、環境資訊、伺服器重要資訊都存放在master資料庫內。
  • model:
    我們在建立新資料庫時的樣版。我們新增資料庫(CREATE DATABASE)時,系統第一步便會將model資料庫的內容100%複製過來,然後再依我們的需求進行修改。所以當你更改model資料庫後,日後新增的資料庫也會100%複製更改後model資料庫。例如:我們常用的預儲程序,我們新增一個sp_db_alert到model資料庫中,那未來新增的任何資料庫都包含這個預儲程序。
  • tempdb:
    是SQL Server用來當工作空間用的資料庫,如儲存使用者建議的暫存表格、儲存使用者宣告的全域變數…等。
  • msdb:
    SQL Server Agent用來安排警示(Alerts)、工作(Jobs)及記錄操作的資料庫。

伺服器角色


  • Bulkadmin:
    大量管理員 (bulkadmin) 固定伺服器角色的成員可以執行 BULK INSERT 陳述式。
  • Dbcreator:
    資料庫建立者 (dbcreator) 固定伺服器角色的成員可以建立、改變、卸除以及還原任何資料庫。
  • Diskadmin:
    磁碟管理員 (diskadmin) 固定伺服器角色的成員可以管理磁碟檔案。
  • Processadmin:
    處理序管理員 (processadmin) 固定伺服器角色的成員可以結束在 Database Engine 之執行個體中執行的處理序。
  • Securityadmin:
    安全性管理員 (securityadmin) 固定伺服器角色的成員,可以管理登入及其屬性。他們可以 GRANT、DENY 及 REVOKE 伺服器層級權限。他們也可以 GRANT、DENY 和 REVOKE 資料庫層級權限。此外,他們可以重設 SQL Server 登入的密碼。
  • Serveradmin:
    伺服器管理員 (serveradmin) 固定伺服器角色的成員可以變更整個伺服器的組態選項與關閉伺服器。
  • Setupadmin:
    setupadmin 固定伺服器角色的成員可以加入和移除連結伺服器,也可以執行一些系統預存程序。
  • Sysadmin:
    系統管理員 (sysadmin) 固定伺服器角色的成員可以執行 Database Engine 中的所有活動。依預設,Windows BUILTIN\Administrators 群組 (本機管理員群組) 的所有成員都是系統管理員 (sysadmin) 固定伺服器角色的成員。
  • Public:
    每一個 SQL Server 登入都屬於 public 伺服器角色。當伺服器主體未被授與或拒絕安全性實體物件的特定權限時,該使用者會繼承授與給該物件之 public 的權限。只有當您想要將任何物件提供給所有使用者使用時,才指派該物件的 public 權限。

  一般帳戶依預設選Public角色。

使用者對應


  選取此使用者登入後可以存取的資料庫。一般使用者不建議勾選系統資料庫。我們一開始有個「預設資料庫」,我們選擇的「master」,master是SQL Server系統資料庫,系統資料庫是很重要的基礎資料庫,怎麼會讓一般使用者可以登入使用,如果有人一個不小心,那你的SQL Server可能會直接掛點。在這個「使用者對應」頁面,你可以看到一個「已啟用master的Guest帳戶」,也就是說雖然你是一般帳戶來登入,但實際上是以Guest來與master溝通作業,Guest帳戶已經把會對master造成的傷害的動作做了一定的保護,所以就算一般使用者預設資料庫是選擇master也沒有關係。

安全性實體


  在此使用者、資料庫角色,或應用程式角色的資料庫安全性實體上設定權限。按一下 [搜尋],將資料庫安全性實體加入 [安全性實體] 方格中。然後選取方格中的安全性實體,並在 [明確權限] 方格中設定適當的權限。

  一般使用者使用預設值即可。

狀態


  • 連接到Database Engine的權限:即Windows驗證
  • 登入:即SQL Server驗證

  你可以暫時拒絕或停用此使用者來連接SQL Server。按下「確定」,完成新增登入使用者的動作。SSMSE的設定到此告一段落,要讓SQL Server開放遠端連線的還需要最後一步「SQL Server組態管理員」。

SQL Server組態管理員


SQL Server服務





  要提供SQL Server遠端連線的功能,除了SQL Server是一定要啟用之外,還需要確定「SQL Server Browser」這個服務是啟用的,在提供遠端連線的伺服器上可以將啟動模式設定為「自動」。



SQL Server網路組態





  網路組態重點在「TCP/IP」身上,預設SQL Server上的TCP/IP是停用的,這也是為什麼如果你沒有進來SQL Server組態管理員設定,前面做再多工也是白工。點擊兩下「TCP/IP」 → 通訊協定 → 已啟用 → 修改為「是」



  選擇「IP位址」 → 找到「IPAll」下方會有兩個項目:
  • TCP動態通訊埠:後面會帶一隨機數字。
  • TCP通訊埠

  請刪除「TCP動態通訊埠」後面的隨機數字,然後在「TCP通訊埠」輸入「1433」這個SQL Server預設連接通訊埠。



  接下「確認」,系統會提醒要重啟服務,設定才會生效,回到「SQL Server服務」,然後重啟SQL Server讓設定生效。



SSMSE連接遠端SQL Server



  我們到另一台電腦開啟SSMSE管理工具,然後依序輸入遠端SQL Server的認證資料,



  按下連接,



  我們可以很清楚的看到連線資訊,我們已經成功連接到遠端的SQL Server。但是還沒有結束,問題出在我們剛才設定的TCP/IP Port 1433身上。這個Port 1433可以說是SQL Server本身的連接預設Port,早期的SQL Server中有一個不需密碼的使用者"sa",而這個使用者又偏偏在SQL Server有極大的權利,可以呼風喚雨,而我們這些SQL Server安裝後設定的預設服務Port就是1433,而駭客們就是使用"人性=懶=惰性"的漏洞,許多的資料庫系統安裝人員很習慣性的「下一步」「下一步」,而建立了許多的「預設型」SQL Server,駭客們就先Scan你的網路是否有開啟1433 port,有的話,接著他會試著使用sa這個使用者來連接,因為不用密碼,然後就BingGo!或是你有設定密碼,駭客們也是可以慢慢猜,讓你防不勝防。

  所以一開始安裝時,我便不建議使用SQL Server驗證模式,因為在安裝啟用SQL Server驗證模式會啟用sa帳戶,那就算不啟用sa帳戶,那麼黑客們還是知道這個預設Port 1433,我們除了使用防火牆來加強安全外,另外我們還已可以修改這個預設Port 1433來避免一些不必要的問題。

修改SQL Server預設連接埠



  修改很簡單,SQL Server組態管理員 → SQL Server網路組態 → TCP/IP → IP位址 → IPAll → TCP通訊埠 → 將「TCP通訊埠」修改為大於1024的埠,我們設定為2000,然後重啟SQL Server服務。

  我們回到另一台電腦,使用SSMSE來連接,你會發現無法連接SQL Server了,這是因為SSMSE預設就是使用Port 1433來連接SQL Server,所以當你在SQL Server的預設Port修改之後,你也要跟SSMSE說現在要使用那個Port來與SQL Server連接。

設定SSMSE連接埠



  • 原:伺服器名稱:192.168.3.12\ICSSQL
  • 修:伺服器名稱:192.168.3.12\ICSSQL,2000
  在伺服器名稱最後加上一個「,(逗點)」,然後加上使用的Port。(註:如果你有使用過早期的管理工具,早期管理工具要設定埠是使用「:(冒號)」)




  這樣我們就完成了整個SQL Server的安裝及遠端連線的設定。

(5) ASP.NET連接遠端SQL Server



  好了,繞了一大圈,只為了一個遠端連接SQL Server?那遠端連接SQL Server要做什麼事?就我所知最大的好處就是分散式架構,什麼是分散式架構?我舉個例子,網站。

  SSMSE ←→ SQL Server ←→ AP / Web Page

  SSMSE比較是後端及管理者使用,管理者可以透過管理工具從遠端來對SQL Server進行管理工作。而前端的應用程式或網站,一樣可以和遠端的資料庫來連接而進行資料存取的工作。

  Web Site1 , Web Site2, WebSite3 … ←→ SQL Server

  Web Site1在新竹機房,Web Site2在深圳機房,Web Site3在日本機房…但SQL Server在香港機房,這樣的應用就是分散式架構,可以讓架構更有彈性更靈活的應用。

  以下我們就以ASP.NET來存取遠端資料庫來實作。

  我們先開啟Visual Studio 2008(註:Visual Web Developer也一樣,只不過稱呼有點不同),建立一個新網站,在左方「方案總管」下方切換到「伺服器總管」,在「資料連接」按左鍵「加入資料連接」



  選擇資料來源:Microsoft SQL Server



  繼續 → 加入連接:依序輸入連接資訊



  按一下「測試連接」,





Default.aspx資料庫連接設定



  先拉一個SqlDataSource,然後「設定資料來源」,



  選擇資料連接



  將連接字串儲存到應用程式組態檔,



  設定Selete陳述式



  先勾選「*」,代表選擇所有資料行,然後點擊「進階」,



  勾選「產生INSERT、UPDATE、DELETE陳述式」,按「確定」,再按「下一步」,點擊「測試查詢」,



  點擊「完成」。

  再拉一個GridView控制項,「選擇資料來源」選擇「SqlDataSource1」,勾選「啟用分頁、排序、編輯、刪除」四項。





  儲存檔案,然後使用Visual Studio本身的網站伺服器來檢視網頁,



  一個擁有「編輯、刪除、排序、分頁」的網頁就馬上出現了,如果你寫過網頁程式,想想你之前花上述四個功能就要花你多少時間,現在不過是隨手之間,基本上我連半行程式都還沒開始寫就已經完成。

  以上ASP.NET的重點其實是在於「連線字串」這一行:

  Data Source=192.168.3.12\ICSSQL;Initial Catalog=Northwind;Persist Security Info=True;User ID=kkbruce;Password=1q2w3e4r5t

  透過它你就能跟遠端SQL Server連接來存取資料。如果不想使用資料連結控制項,那以上這行你就要跟它熟一點。

  • Data Source:連接的SQL Server;
  • Initial Catalog:要連接的資料庫;
  • User ID:SQL Server驗證登入帳戶;
  • Password:帳戶密碼;

  其他ADO.NET部分請自行參考書籍。

  現在不管這個Default.aspx放在那個地點,都可以正確連接資料庫來存取得資料(Data Source資料要正確,因為我們是使用虛擬IP),而這樣的運作才是Internet的本質。

  以上注重在安裝、設定2008 Express / SSMSE及簡易ASP.NET互動,資料庫上還有許多專業知識等大家去學習,這邊只是一個簡單的入門介紹,希望能幫助到大家。

119 則留言:

  1. 好詳細阿 謝謝你把經驗分享出來 對我這個裝了好幾次都還迷迷糊糊的新手 真是很大的幫助 感激^^

    回覆刪除
  2. 我也是這樣走過來的,一起加油!

    回覆刪除
  3. 這篇分享太棒了啊!謝謝!

    回覆刪除
  4. 先生你好
    我在網路上看到你寫的server u 的部份很詳細

    剛好最近我在安裝上有一些問題 可以請您幫忙解決嗎

    我的msn:nffhwinf@mail2000.com.tw

    感謝 快要搞瘋了 就是找不出問題 他就一直出現下列問題

    『瀏覽器設定中禁用了 Javascript。要使用 Serv-U 檔伺服器必須啟用 javascript。

    瀏覽器設定中啟用了 javascript 後點擊下麵的 "重新載入" 按鈕。』

    回覆刪除
  5. msn我不方便加入,我有mail到此信箱,但被退了。如果你確定設定沒有問題,先升級到最新版看看,目前9.x版,我用是很穩定。不然,Mail到kingkong點bruce at gmail點com

    回覆刪除
  6. 感謝,謝謝你無私的分享!!

    回覆刪除
  7. 不好意思 請問一下大大一些問題
    在下的SQL組態管理員裡 SQL Sever的選項無法啟動

    如圖:
    http://im97.myweb.hinet.net/pic/index.html

    非常感謝回答

    回覆刪除
  8. 從你的提供的畫面中,可以清楚的看到「Database Engine Services」沒有安裝成功,也就是說,你的「SQL Server」是安裝失敗的,也就是你電腦上沒有「SQL Server」,沒有SQL Server,那你要如何來啟動?

    回覆刪除
  9. 另外請查詢系統事件,看是否能查出安裝失敗的原因。目前我知道只有XML 6.0 SP2會造成SQL Server安裝失敗。

    回覆刪除
  10. 已經完成安裝了,非常感謝幫忙:)
    沒想到您回覆的那麼快@@
    真是位才子=ˇ=

    回覆刪除
  11. 是你提供了正確的錯訊息畫面。
    要是每個人都像你一樣就好了。^_^

    回覆刪除
  12. 我是安裝完成了,可是在部屬的地方一直顯示錯誤,在檔案建立reporting services的地方,我的不會自動建立,而你的圖片上有,這樣我該怎麼辦阿,國外有很多論壇,可是根本看的霧煞煞

    回覆刪除
  13. 美君,Sorry,我有點看不太懂你的意思。
    你的意思是,妳之前安裝SQL Server時沒有安裝Reporting Services,現在想要把Reporting Services安裝上去嗎?是這個意思嗎?

    回覆刪除
  14. 不好意思 想請問個問題..

    關於文章中,設定了三個帳號 SQLDE、SQLRS、SQLFFDL
    這三個東西,之後會在哪裡需要用到阿?

    我是打算灌來自己練習的
    因為看到了最後,都沒有提到說這三個東西在哪裡需要用到,而我重開機的時候,我的登入畫面就多了三個帳號可以選。

    本來以為,這三個帳號是要用在 開SSMSE登入資料庫用的,但是好又不對。
    或是說,這三個一定會存在,那我有沒有辦法可以讓我的登入畫面簡單一點啊?

    問題有點囉嗦,不知道大大是否方便可以解釋一下?

    回覆刪除
  15. 1. 這三個帳號是給SQL Server登入相關服務使用,我們不會使用到。
    2. 自己練習(應是XP),非正式上線伺服器,可以不建這三個帳號,用本身(XP)內建帳號(通常是登入帳號)來設定即可。

    回覆刪除
  16. 恩...我是灌完了重開才發現到這個問題的說...
    要換成原本的xp帳號,不知道會不會很麻煩說

    不過,謝謝大大的解答~

    回覆刪除
  17. 換回登入帳號,建議把SQL Server Express移除;
    然後,刪除那三個帳號,再重新安裝一次(當成練習吧)!

    回覆刪除
  18. 可以再請問個問題嗎?
    我已經重灌完了,也可以用了,但是有個疑問想要問一下。

    如果我設定了這三個帳號 SQLDE、SQLRS、SQLFFDL 後
    當我使用自己的帳號登入系統(不屬於這三個)
    我在程式碼裡面,除了使用
    SqlConnection myConn = new SqlConnection("user id=sa;password=password;server=localhost;Trusted_Connection=yes;database=testDB;connection timeout=30");
    myConn.Open();
    這兩行以外,是不是還要有其他的登入啊?
    因為練習的時候,這樣子跑到open就會有問題阿

    因為感覺上是不是要先讓程式登入到 SQLDE 這個帳號裡面,才能使用連線啊?

    我的環境是 vs2008 sql2008 loginID:我自己的帳號(不是使用上面三個) 都是在本機作練習

    附上原始碼..
    using System;
    using System.Data;
    using System.Windows.Forms;
    using System.Data.SqlClient;

    namespace dbtest
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private DataSet DS = new DataSet();
    private DataTable DT = new DataTable();

    private void button1_Click(object sender, EventArgs e)
    {
    SqlConnection myConn = new SqlConnection("user id=sa;password=password;server=localhost;Trusted_Connection=yes;database=testDB;connection timeout=30");
    myConn.Open();
    DataSet DS = new DataSet(); //建立一個資料集的方法
    SqlDataAdapter SqlAda = new SqlDataAdapter("select * from table1", myConn); //建立資料庫接和器
    SqlAda.Fill(DS); //最後透過接和器將資料填入(Fill)資料集裡面,並將填入到資料集的表格取名
    DT = DS.Tables[0];
    dataGridView1.DataSource = DT;
    myConn.Close();
    }
    }
    }

    回覆刪除
  19. 1. 那三個帳號的規劃是為了安全性,不使用也沒關係。
    2. 你的連線字串中,我有看到"sa",SQL Server預設是不開放"sa"帳號連線,因為sa的權利太大,也是被攻擊的首要目標。
    3. 確認"sa"有開放登入SQL Server,或是使用你登入SQL Server的帳號來連線。
    4. 另外確認,你連線帳號必須要有「testDB」使用權限。
    5. 程式本身看起來沒問題。

    回覆刪除
  20. 恩 我知道了...
    非常感謝您的幫忙阿 謝謝 ^^

    回覆刪除
  21. 我想請問一下,我目前也安裝SQL SERVER 2008
    是安裝SSMSE
    不過在安裝的"特徵選取"我只有共用功能的"管理工具-基本、SQL用戶端連接性SDK可以選而已,並沒有像你的選裡面有"執行個體功能"的選項,安裝完之後。
    我好像無法連線到遠端的資料庫,連本機好像都不能連,在SQL Server網路組態裡面也沒項目,請問這是什麼問題呢??

    回覆刪除
  22. 再多一點資訊,你有依本篇所有步驟試一次嗎?

    你沒有在本機安裝SQL Server,當然無法連線到本機,組態裡也不會有東西。

    回覆刪除
  23. 不好意思,我是上個問題的提問者
    如果我遠端登入時會出現錯誤訊息
    伺服器名稱: xx.xx.xx.xx
    錯誤號碼: 18456
    嚴重性: 14
    狀態: 1
    行號: 65536

    連本機就會出現
    建立連接至 SQL Server 時,發生網路相關或執行個體特定的錯誤。找不到或無法存取伺服器。確認執行個名稱是否正確,以及 SQL Server 是否設定為允許遠端連線。 (provider: SQL 網路介面, error: 26 - 搜尋指定的伺服器/執行個體時發生錯誤) (.Net SqlClient Data Provider)
    錯誤號碼: -1
    嚴重性: 20
    狀態: 0


    請問該如何解決呢?謝謝

    回覆刪除
  24. 不好意思,補充一下
    我目前發現連線SQL 2005正常可以連線
    但如果連到2008會就發生錯誤
    謝謝!

    回覆刪除
  25. 1. SSMSE的版本,是2008的嗎?2008可以連SQL Server 2005/2008, 但2005只能連SQL Server 2005.
    2. SQL Server 2005 / 2008是在同一台Server上嗎?

    因為遠端連線需要"兩端"都設定正確才有辦法連線,所以找問題你必須有這"兩端"權限,才有辦法找出問題點。

    1. 因為SQL Server 2005與2008有很大的差異,所以不能用2005的管理工具管理2008,但2008可以向下相容2005。
    2. Server端的SQL Server port與firewall必須設定正確。
    3. Server端的帳號權限必須正確。(必須有「登入」權限)

    從這幾個方向下手看能解決嗎?

    回覆刪除
  26. 謝謝你熱心的解答
    問題解決囉
    是在登入資料有些錯誤而已

    回覆刪除
  27. Hi,直到今天,SQL 2008 Express 安裝還是會遇到MSXML 6 SP2 無法正確安裝的問題.幸好,有看到您的這篇文章,不然真不曉得還要搞多久呀.

    回覆刪除
  28. 有時間,可以換玩玩SQL Server 2010 Express了,不會有MSXML 6 SP2造成安裝失敗的問題了。

    回覆刪除
  29. PrepInstance () failed for MSSQL $WARDENDEV
    The following features are missing : Full Text Search

    Fix the problems and re -run setup .

    安裝範例資料庫出現的問題,但是全文檢索我有安裝了,也有打開功能了,不知道該如何解決呢?謝謝

    回覆刪除
  30. 1. 範例資料庫有多個版本,請問你是安裝那一個版本?
    2. 北風資料庫,應該執行*.sql就可以了,與Full Text Search無關。
    3. AW資料庫版本,應該用「附加」的方式,請確認所在目錄的權限。
    4. AWR2版本版本,本身會自的測試你所在的環境,安裝「可執行」的資料庫,所以失則的機會應該很小才是!

    回覆刪除
  31. 我是vista電腦 安裝VWD出現錯誤:無法安裝 Microsoft Visual Studio Web撰寫元件的更新(KB945140) 也有人遇到同樣問題=>http://social.msdn.microsoft.com/Forums/es-ES/230/thread/fa43b668-71ba-4f8a-8d82-e03110f316d0
    請問要怎麼解決呢

    回覆刪除
  32. 1. 請先確認電腦所有SP都更新到最新情況。
    2. 我的電腦也是Vista,沒碰過這種情況。
    3. http://wolfwind.pixnet.net/blog/post/25074187
    4. 要不要試試「VWD 2010」?

    我有幾篇介紹Visual Studio 2010新功能的文章,VWD 2010都可以使用!

    回覆刪除
  33. 你好,想請問一下如果不慎將預設資料庫刪除了

    導致連線時出現「無法開啟使用者預設資料庫。登入失敗。」

    有解決辦法嗎?

    註:MSDN有2005的解決辦法,但是沒有2008的XD..

    回覆刪除
  34. 預設資料庫
    1. 是指MS SQL本身那幾個預設資料庫,請重新安裝吧!
    2. 是指設定帳號時指定的預設資料庫,請使用其他Admin的帳號登入,修改此帳號的預設資料庫。或使用sqlcmd.

    回覆刪除
  35. 你好, 先謝謝你的指引,才順利安裝好 2008 exrpess R2
    安裝後成功在 asp.net中使用, 但很奇怪在網頁中只能讀取, 不修改式加新記錄, 已在帳號上加上了所有的角色.

    請問還要加點什麼呢?

    回覆刪除
  36. 如果你依照我的設定:

    請檢查帳號-->屬性-->使用者對應:檢查資料庫及角色成員資格,在測試環境可以設成「db_owner」,在正式環境請設定為「db_datareader及db_datawriter」,一般Web只會對DB進行讀寫,所以這樣的權限就很足夠了。

    還有在Vista以上的作業系統,請把新增的資料庫放在非「C:」之下,因為Vista以上的作業系統對「C:」權限安全性設得很高,改設定很麻煩,直接放在非「C:」比較快。

    別外,如果可以請提供錯誤訊息!

    回覆刪除
  37. 超實用的介紹與說明,對我只懂大略配置,卻不懂工程師思考一個MS SQL DB系統架構why and how的業務來說,真是太棒了!!
    - 小布

    回覆刪除
  38. 你好:想請問sql 2008系統資料庫資料無法安裝erp系統是資料庫沒安裝好嗎??(是erp系統的廠商說我們資料庫沒有安裝好,只能使用資料庫快照集)
    2.因為系統資料庫無法安裝erp系統,只能使用資料庫快照集請問這樣可以嗎?
    3.請問使用sql 2008自動備份資料庫資料??
    4.請問sql 2008可以設定電腦關機時間??

    回覆刪除
  39. 1. 系統資料庫為master, model, msdb, tempdb四個,如果這四個系統資料庫出問題,資料庫系統就會無法運作,你應該在系統資料庫中下一些簡單的select,如能正常回應,應該就正常無誤了。
    2. 不好。快照是快照。
    3. Express版本需手動,正式版可以自動備份。但又分本機與遠端,詳細資訊請查各版本正式功能。
    4. 不行,它是「資料庫」,不是「系統管理工具」。

    你應該是請erp廠商幫你處理,怎麼會問到這裡來??

    回覆刪除
  40. 你好:
    我是先安裝了Visual studio 2010之後看見它好像有提供SQL Server 2008,請問是否可以安裝成功?
    我有試著安裝過,但在啟動「System Configuration Checker」工具後出現了要求我選取安裝的資料夾,不論我點選哪個,都會出現「這不是有效的安裝資料夾...」這樣的視窗...
    請問我該怎麼辦?!
    PS 我是使用win7...
    謝謝~

    回覆刪除
  41. Visual Studio 2010提供為SQL Server 2008 Express SP1版本,預設會自行安裝。可下載 SQL Server 2008 R2 Express版本升級,請參考:http://kkbruce.blogspot.com/2011/02/visual-studio-2010sql-server-2008.html

    回覆刪除
  42. 你好:
    我有使用工具裡的「已安裝的SQL Server功能探索報告」來產生版本,但是各欄位都是顯示「無」這是否代表我沒有安裝過?
    倘若我想安裝,我要怎麼樣才可以先解決「這不是有效的安裝資料夾」的視窗問題?
    謝謝~

    回覆刪除
  43. 如果版本為「無」,應該是安裝失敗或沒有安裝。
    再來,依提供錯誤訊息來看,應該安裝時的解壓縮安裝資料夾有問題,
    但確認環境變數中,
    1. 系統變數 --> Temp / TMP
    2. 使用者變數 --> Temp / TMP
    兩者所指的「Disk」空間充足。

    回覆刪除
  44. 最近在做一個網站
    SQL弄好了 網頁也做好了

    不過把它放到IIS上卻出錯了
    請問是資料庫設定問題 還是IIS設定問題 或是web寫錯了
    該怎麼解決??
    以下是錯誤訊息:

    '/WebApplication1' 應用程式中發生伺服器錯誤。

    無法開啟登入所要求的資料庫 "TimetablingTeachers"。登入失敗。
    使用者 'NT AUTHORITY\NETWORK SERVICE' 的登入失敗。

    描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

    例外詳細資訊: System.Data.SqlClient.SqlException: 無法開啟登入所要求的資料庫 "TimetablingTeachers"。登入失敗。
    使用者 'NT AUTHORITY\NETWORK SERVICE' 的登入失敗。

    原始程式錯誤:

    在執行目前 Web 要求期間,產生未處理的例外狀況。如需有關例外狀況來源與位置的資訊,可以使用下列的例外狀況堆疊追蹤取得。

    回覆刪除
  45. Dear mickey

    1. 你的SQL Server與Web是在同一台嗎?不然怎麼會使用NT AUTHORITY?
    2. Web的話,請參考教學,使用混合模式,使用帳號密碼的方式登入。

    回覆刪除
  46. SQL Server與Web是在同一台
    那要怎麼解決??
    sql要重設嗎?

    回覆刪除
  47. 把你現在回應的這篇文章全部的看一次,然後跟著做一次(安裝部分可以不用做),應該就可以解決你的問題。

    回覆刪除
  48. 我依照上面都做完了
    可是自創的腳色卻沒辦法登入


    ===================================

    無法連接到 USER-PC\SQLEXPRESS1。

    ===================================

    使用者 'mmm' 的登入失敗。 (.Net SqlClient Data Provider)

    ------------------------------
    如需說明,請按一下: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=18456&LinkId=20476

    ------------------------------
    伺服器名稱: USER-PC\SQLEXPRESS1
    錯誤號碼: 18456
    嚴重性: 14
    狀態: 1
    行號: 65536


    ------------------------------
    程式位置:

    於 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
    於 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
    於 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
    於 System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
    於 System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
    於 System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
    於 System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
    於 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
    於 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
    於 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
    於 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
    於 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
    於 System.Data.SqlClient.SqlConnection.Open()
    於 Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ObjectExplorer.ValidateConnection(UIConnectionInfo ci, IServerType server)
    於 Microsoft.SqlServer.Management.UI.ConnectionDlg.Connector.ConnectionThreadUser()

    回覆刪除
  49. 依錯誤訊息,可參考:http://kkbruce.blogspot.com/2009/05/sql-server-2008-expresssql-server.html

    我段落:「四、SSMSE及SQL Server Configuration Manager」也有寫到相關設定:這是我們要變更組態的第一個地方,將Windows驗證修改為「混合模式」,也就是「SQL Server及Windows驗證模式」,按確定之後就可以使用SQL Server驗證來遠端連線了嗎?還沒。

    請在試一試。

    回覆刪除
  50. 確認幾件事:
    1. SQL Server已經設為「固定port」,如果設為 1433 請確定有保護好。
    2. SQL Server Browser服務要啟用。
    3. 在本機先使用SSMS測試,SSMS能使用SQL Server驗證模式登入,那ASP.NET就一定可以。
    4. 每次更改設定,都必須重啟SQL Server。

    回覆刪除
  51. 謝謝囉! 我搞定了 權限問題沒有設定好而已

    回覆刪除
  52. KKBruce 你好,
    感謝你提供這樣仔細的安裝教學。

    關於安裝過程的「服務帳戶」設定,我也依照教學中所描述的設定了不同的「一般」使用者帳戶。

    SQL Server 安裝完成後,我試著使用 SQLDE 帳戶登入我的WINDOWS SERVER 2003 系統,並在系統的「開始-執行」中
    輸入 services.msc 試著重新啟動 「SQL Service (SQLEXPRESS)」 服務,卻無法停止服務。使用「administrator」帳號重新登入作業系統,同樣的下services.msc 試著重新啟動 「SQL Service (SQLEXPRESS)」 服務則是正常的。

    是否是我的操作不正確或是認知上出了問題,是否能請你指點一下。

    謝謝~~

    回覆刪除
  53. 這是Windows權限問題,因為我們只給SQL Server最少的必要權限,所以使用此帳戶登入,不能啟動是正常的。

    想想,如果我取得你最少必要權限帳戶,還能啟用及使用SQL Server,做一個簡單的Drop table動作就好,那我們設定此帳戶還有什麼意義呢?

    回覆刪除
  54. KKBruce,謝謝您的回覆。

    原來「服務帳戶」的設定,是為了滿足系統「安裝服務」時的需求;而並不是用來「指定」特定帳戶是否有權「啟動」或「停止」SQL Service 服務。

    回覆刪除
  55. 你好 我是育傑 我重新安裝了SERVER 2003 也要在不更新的狀況下安裝那3個程式在安裝SQL SERVER 2008成功了

    但是我手邊有一套網頁 原本是使用ACCESS的資料庫
    我已經請人修改成使用SQL SERVER 但是我在設定好IIS那些後 要連接到留言版部分出現這段A network-related or instance-specific error while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
    建立連接至 SQL Server 時,發生網路相關或執行個體特定的錯誤。找不到或無法存取伺服器。確認執行個名稱是否正確,以及 SQL Server 是否設定為允許遠端連線。 (provider: SQL 網路介面, error: 26 - 搜尋指定的伺服器/執行個體時發生錯誤)
    描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

    例外詳細資訊: System.Data.SqlClient.SqlException: 建立連接至 SQL Server 時,發生網路相關或執行個體特定的錯誤。找不到或無法存取伺服器。確認執行個名稱是否正確,以及 SQL Server 是否設定為允許遠端連線。 (provider: SQL 網路介面, error: 26 - 搜尋指定的伺服器/執行個體時發生錯誤)

    原始程式錯誤:

    在執行目前 Web 要求期間,產生未處理的例外狀況。如需有關例外狀況來源與位置的資訊,可以使用下列的例外狀況堆疊追蹤取得。

    回覆刪除
  56. Dear 育

    執行個體錯誤,應該是你連線參數裡的給的資料是錯的,以我上述文章為例:"Data Source=192.168.3.12\ICSSQL",ICSSQL是執行個體名稱,你必須設定為正確的名稱,才會連線成功。

    你可以先試著依本文實作相關ASP.NET的練習(先把SQL Server部份看熟),每個人產出的Data Source不應該是一樣的,先讓GridView能出現資料,確定問題不在資料庫後,再來進行ASP.NET程式的Debug。

    回覆刪除
  57. 另:http://www.delightpress.com.tw/book.aspx?book_id=SKUD00010

    應該是不錯參考書。

    回覆刪除
  58. 最近安裝一直出問題,看了版大的詳細教學終於成功了
    目前在努力探索中,超感謝的。

    回覆刪除
  59. 版大先進您好,對於SQL Server的使用者帳戶設定一直都有些許混沌不明瞭之處,想請您再稍加說明指教,感激不盡。
    若在SQL Server組態管理員中,任意改變登入身份的帳號,例如本機系統、網路服務、本機服務、甚至直接指定Administrator帳號,分別會有什麼樣的結果嗎?會對哪些地方、功能或服務造成影響嗎?若伺服器上已有建立資料庫且都已經上線運作了,如此修改會造成影響嗎?
    因為最近想試著為伺服器的所有資料庫進行自動排程備份,且想備份檔直接放在另一台伺服器上的網路磁碟機上,這方面可能需修改到Engine和Agent的登入身份,但深怕會對就有運作中的資料庫或AP程式造成影響,所以向您請教了~謝謝~

    回覆刪除
  60. 就 Sql Server 而言,使用者帳號,只是「 Windows 拿來啟動 Sql Server服務」之用,所以我才會建議使用「最小權限」來新增一新帳戶給 Sql Server 使用。

    影響就是,此帳戶有什麼權限,就有什麼影響。(廢話)

    本機系統,有什麼權限?
    網路服務有什麼權限?
    本機服務有什麼權限?
    Administrator有什麼權限?

    權限:http://www.google.com.tw/search?sourceid=chrome&ie=UTF-8&q=SQL+Server+%E4%BD%BF%E7%94%A8%E8%80%85%E5%B8%B3%E6%88%B6,參考看看。

    備份:http://www.google.com.tw/search?hl=zh-TW&q=SQL+Server+%E5%82%99%E4%BB%BD&oq=SQL+Server+%E5%82%99%E4%BB%BD&aq=f&aqi=g7&aql=&gs_sm=e&gs_upl=311279l312406l0l313342l6l6l0l4l4l1l233l414l0.1.1l2l0,參考看看。

    備份裝置:http://msdn.microsoft.com/zh-tw/library/ms191316(v=SQL.105),參考看看。

    備份問題,可大可小,看你如何設計。

    回覆刪除
  61. 天ㄚ…超級詳細~

    感謝您的分享

    回覆刪除
  62. 大大,您真是太神了!請受小弟一拜!

    回覆刪除
  63. 大大,安安:
    我用的是WIN 7 加強板,因會計軟體(單機板)之故,須安裝 MSSOL 2008 ,對第一次接觸SOL的我在安裝上須特別注意那些??????可否提醒一下

    回覆刪除
  64. 1. Windows 7 加強版?我不知道有這種版本!
    2. 有什麼要注意,你應該問「會計軟體」廠商,而不是問我。
    3. 就ms sql 2008本身,應該注意,我都寫在本文內。

    回覆刪除
  65. 您好,
    參考您的文章總算把 Microsoft SQL Server 2008 Express (with Tools) 安裝成功了, 感謝您的分享!
    根據您的建議, 安裝之後一定要快上 Service Pack 1, 所以下載了 SQLEXPR_x86_CHT.exe 來更新, 但執行該程式, 所出現的畫面跟 SQLEXPRWT_x86_CHT.exe 的畫面相同.
    請問應該從哪個選項進去才正確? 謝謝~

    回覆刪除
  66. 可參考:http://blog.kkbruce.net/2011/09/sql-server-2008-r2-sp1.html#.TuBwXmOxV3V

    另外,可以透過Windows Update來更新。

    回覆刪除
  67. 沒想到您回覆的那麼快! 謝謝~~
    已完成安裝 sql-server-2008-r2-sp1.
    大大真是既專業又熱誠!!

    回覆刪除
  68. KK 您好, 我需要將 7.0 的資料庫轉移到 2008 R2 上

    這是我目前遇到的問題
    http://social.technet.microsoft.com/Forums/zh-TW/sqlservermanagementzhcht/thread/24227a0a-d691-4df8-bfa2-eb2f8c3094ba

    我有參考微軟的文章
    http://msdn.microsoft.com/zh-tw/library/ms177398.aspx

    我接觸資料庫約一年左右, 很多指令還不是很熟,
    照著微軟文章實作遇到數十次的挫敗,
    有個部份想請教,
    這一行:
    [將 SQL Server 7.0 資料庫升級到 SQL Server 2000 或 SQL Server 2005,其方式是將此資料庫附加到執行其中一個產品的執行個體。然後,您可以將資料庫升級到 SQL Server 2008 R2。一般來說,這是慣用的方法。]

    意思是 7.0 升到 SQL 2000 >卸離>附加到 SQL 2008 R2 上 ?
    還是 7.0 資料庫卸離> 附加到 SQL 2000 >升級 SQL 2008 R2 ?

    煩請指點迷津,

    我的伺服器 1 的 SQL 7.0 在 Win 2000 上
    伺服器 2 的 SQL 2008 R2 SP1 在 Win Server 2008 R2 SP1 上

    因為沒有上過專門的課程, 全都是努力自學的, 還請老師多多包涵 <(_ _)>

    回覆刪除
  69. 我在討論區回覆你了。

    基本上,就是:
    1. 7.0 升 2000/2005
    2. 2000/2005 升 2008 r2

    分為兩個步驟。

    回覆刪除
  70. 謝謝 KK布魯斯, 恕我 2 邊都 PO 文
    讓更多跟我遇到相同問題的人能夠看到

    謝謝 KK布魯斯

    我目前是準備了 2 台非正式 PC 備用機
    PC 1 裝 Windows 2000 Server SP4 + 更新彙整套件 1 + SQL Server 7.0 std
    PC 2 裝 Windows Server 2008 R2 SP1 std + SQL Server 2008 R2 SP1 std
    單位使用的資料庫名為 twnsys.dbf (公所的)
    PC 1 我建立了 2 種環境, 環境 1 是 Win 2000 Server + SQL 7.0 , 環境 2 是 Win 2000 Server + SQL 2000 SP4
    (HDD 只有規劃 C:\ 與 D:\ , 所以我準備了 2 份 Ghost.gho)
    環境 1 ,
    不知是否之前資料庫受到病毒侵襲的影響, 還是哪邊做錯了, 從單位 Copy 回來的 twnsys.dbf 以及各個 master, model, msdb, tempdb 我只有在 PE 下覆蓋,
    7.0 才能正常運作, 我用跟單位一樣的 7.0 英文版, 在 Enterprise Manager 選 Backup 會出錯, 選 C:\ 選 D:\ 選哪裡都會出現一堆英文 + 亂碼的錯誤提示
    環境 2, 我試過不要覆蓋單位的 twnsys.dbf 以及各個 master, model, msdb, tempdb ,
    單純的安裝 SQL 7.0 Std, 再將 s80305i.exe 放入 SQL 2000 Std , 安裝時, 選擇 "升級現有的資料庫", 升級成功, 重開機後, 直接安裝 SP4 套件, 安裝成功
    我試過了將環境 1 的 twnsys.dbf 及其 log 附加到環境 2 的 2000 SP4 上, 是 OK 的
    我目前正在爬文章學習如何附加或是還原 master, msdb, model, tempdb 這些資料庫 ~~~
    另外, SQL 2008 R2 SP1 std 的最低要求似乎是 Server 2003 SP2 和 Server 2003 R2 SP2
    這樣我是不是該準備 PC 3 安裝 Server 2003 R2 SP2 + SQL 2000 SP4 , 資料庫附加好之後, 再升級到 SQL 2008 R2 SP1
    或是讓 PC 2 移除 SQL 2008 R2 SP1, 改成, 先裝 SQL 2000 SP4 , 資料庫附加好之後, 再升級到 SQL 2008 R2 SP1
    請問我的觀念對嗎 ?@_@
    回覆文章的同時也正努力的測試中 >_< 謝謝 KK布魯斯

    回覆刪除
    回覆
    1. 您好:

      我在「設定Selete陳述式」這邊時無法選擇「指定資料表或檢視的資料行」這個選項,請問該如何解決呢?

      謝謝您

      刪除
    2. 你前面步驟連線至資料庫部分,成功嗎?

      刪除
  71. Sorry, KK布魯斯,

    我的觀念錯誤了, 我一直以為這 4 個系統資料庫也要一起升級上去 Orz |||

    後來爬了很多文章, 像...
    http://support.microsoft.com/kb/224071/zh-tw
    才知道我錯了, 一次又一次的嘗試, 發現我只需要移動 twnsys 這個資料庫, 移到 PC2 上面,

    Server 端不論 SQL Server 2000 SP4 或 SQL Server 2005 SP4
    Client 端都連得上

    我目前的心得是:

    #1. SQL Server 7.0 卸離的話, 附加時, 支援的最高版本是 SQL Server 2005

    #2. Windows Server 2003 或 2003 R2 我有考慮過,
    好處是向下既相容 SQL 2000, 向上也支援 SQL 2008, SQL 2008 R2
    作為 SQL 7.0 跳 SQL 2008 R2 是很好的橋樑
    但是因為 PC2 早已安裝了 Windows Server 2008 R2, 所以我嘗試了另外一種方法, 如下

    #3. 我發現, Windows Server 2008 R2 + SQL 2000 時,
    會提示不相容, 解決方案亦無提到 SP4 可改善,
    但是若不理會, 強制裝起來的話, 其他 Client 端還是可以連的到 OK

    #4. 基於 #1 , 加上 PC2 早已安裝了 Windows Server 2008 R2, 且更新到 SP1
    所以我嘗試了另外一種方法, 我先安裝 SQL 2005 (一樣會提示不相容, 但解決方案是 SP3)
    於是我裝了 SQL 2005 + SP4, 然後附加 SQL 7.0 的資料庫,
    測試 Client 端連線 OK

    #5. 但是我也發現, 在 Windows Server 2008 R2 SP1 上,
    SQL 2005 SP4 無法直升 SQL 2008 R2,
    安裝規則 > 支援版本的作業系統 , 失敗, 無法按下一步 Next, 致此一度灰心沮喪

    #6. 所以, 我又試了另一種方法, 先將 SQL 2005 SP4 x64 升級至 SQL 2008 x64,
    再升級至 SQL 2008 SP3, 再升級 SQL 2008 R2 x64, 再升級 SQL 2008 R2 SP1
    終於成功了, Client 端連線也 OK

    #7. 另外, 在 Windows Server 2008 R2 上, 預設的防火牆會讓 SQL 不通,
    http://www.dotblogs.com.tw/yc421206/archive/2011/06/24/29806.aspx
    我是學這篇去做設定的

    ---------------------------------------------------

    以上都是測試環境的心得, 非正式環境,

    雖然心中的大石總算放下,

    但是還是有好幾個問題想請教,

    Q1. Client 端方面, 是透過 [應用程式] > [Client 端連接工具] > [Server 端資料庫],
    而 [應用程式] 開啟, 會出現這套程式 [使用者] 與 [密碼] 的登入畫面,
    以往 SQL 7.0 時, [應用程式] 開啟約 1~2 秒, 1~2 sec,
    現在的 SQL 2008 R2, [應用程式] 開啟約 10~15 秒, 10~15sec, 才出現登入畫面...
    新的伺服器, 沒道理會輸給 8~9 年以前的伺服器呀 Orz|||

    http://sharedderrick.blogspot.com/2008/10/sqlserver.html
    是因為這一篇說得這樣嗎 ? 我打算照著做做看

    Q2. 在 SQL 2005 升級 SQL 2008 的時候, 我也有看到 "全文檢索升級" 的選項,
    我是選擇 "重建", 安裝完成後, 似乎沒改善, 如同 Q1 那樣, 程式開啟總是慢慢的
    那麼, 選擇 "匯入" 會不會好些呢 ?
    另外, "全文檢索升級" 跟 "重建索引" 算是一樣的動作嗎 ?

    Q3. 我已經飽嘗 1433 port 淪陷中毒的痛苦 Orz|||
    http://www.dotblogs.com.tw/yc421206/archive/2011/06/24/29806.aspx
    這一篇的防火牆設定, 如果我在 SQL 2008 R2 已指定了 "其他 xxxxx Port"
    那麼...我是只改 1433 TCP SQL Database Engine 這一項,
    還是, 這些通通都要改 ?
    1433 TCP SQL Database Engine
    1434 UDP SQL Browser Service
    2382 TCP SQL Analysis Service Redirector
    2383 TCP SQL Analysis Service
    80 TCP SQLReporting Service

    Q4. SQL 2005 升 SQL 2008 升 SQL 2008 R2 之後,
    我發現, 開始 > 所有程式 > SQL 2005, 2008 都還在,
    SSMS 也都可以登入,
    這樣沒關係嗎 ?
    還是說 SQL 2008 R2 OK 了, 這些 SQL 2005, 2008 就可以砍了 ?
    怕哪一天又有木馬侵襲舊版本的漏洞...
    所以只想留 SQL 2008 R2

    Q5. 在 Windows Server 2008 R2 SP1 安裝 SQL 2005 之初,
    安裝程式支援規則, 曾警告 IIS 少了某些功能, 似乎是報表伺服器會用到的功能,
    因為我只新增了功能最少, 最基本的 IIS 角色,
    雖然後來我將 IIS 的功能全部勾選了, 就沒再出現那個警告了, 但是提供的服務一多,
    會不會影響伺服器的效能或是安全性降低 ?


    對不起, 問題有點多, 有勞前輩了 <(_ _)>

    回覆刪除
  72. 謝謝 2 位前輩解答 >_<

    --------------------------------------------------
    對不起, 我先整理一下, 我上面的文章寫得有點混亂...

    上面文章的 #5. #7. ,我發現無法 SQL 2005 SP4 直升 SQL 2008 R2 的原因了 -_-|||
    原因 → 我在測試環境 PC2 上, 安裝 SQL 2008 R2 時, SN 是網路找的,
    一組 B68Q6-xxxxx-xxxxx-xxxxx-xxxxx 的 Standard 版本 SN,
    這組 SN 無法通過『安裝規則』, 安裝不行, 升級也不行,
    後來又找了另一組 SN 就 OK 了

    想說奇怪, 新買的伺服器的 Windows Server 和 SQL Server 都是有授權的, 安裝都 OK
    怎麼在測試環境的 PC 上就不行, 新增了應用程式伺服器也不行, 移除了 MSXML 6 SP2 也不行,
    SQL 2005 和 SQL 2008 移除, 再裝 SQL 2008 R2 也不行,
    Windows Server 2008 R2 SP1 重灌, 再裝 SQL 2008 R2 也不行,
    Windows Server 2008 R2 SP0 重灌, 再裝 SQL 2008 R2 也不行,
    終於確定是這組 B68Q6-xxxxx-xxxxx-xxxxx-xxxxx 的 SN 有問題
    --------------------------------------------------

    新的心得:

    再次測試確認,
    Windows Server 2000 SP4 Std+ SQL Server 7.0 SP4 Std 卸離

    Windows Server 2008 R2 SP1 x64 Std + 附加到 SQL Server 2005 SP4 x64 Std

    Windows Server 2008 R2 SP1 x64 Std + 升級至 SQL Server 2008 R2 SP1 x64 Std

    OK, 解決問題, 謝謝二位前輩

    --------------------------------------------------

    回到上次的 Q1 ~ Q6

    Q1. 我發現 SSMS 裡面的維護計畫, 是菜鳥救星呀~~~
    維護計畫精靈 > 勾選了『重新組織索引』,『重建索引』,『更新統計資料』,
    且我也立即執行, 執行成功, 但是, 重新啟動 SQL Server, 或是 ReBoot PC 後,
    用戶端開啟 Program 還是一樣要 17 sec, 有點失望 Orz |||

    已排除的原因 1 : 已排除 OfficeScan 10.6 雲端截毒, 我將 PC1 和 PC2 防毒都移除, 仍是 17 sec
    已排除的原因 2 : 已排除 Windows 防火牆, 2000 無防火牆, 2008 防火牆我關閉了, 仍是 17 sec

    另外, rmiao 說的 'auto close' 是指...指這嗎 ? ↓
    Database Name > 屬性 (R) > 選項 > 自動關閉 [False]

    還是這 ? ↓
    編寫資料庫的指令碼為(S) > Create 至(C) > 新增查詢編輯器視窗
    裡面有一行 ALTER DATABASE [twnsys] SET AUTO_CLOSE OFF
    GO

    Q2. 原來如此, 全文檢索只是個 "功能",
    我只要讓用戶端能正常存取資料庫就可以了, 謝謝二位

    Q3. Port 我改好了, 防火牆也設好了, 謝謝二位

    Q4. 已確認過, SSMS 是 10.5, 也就是 2008 R2,
    點開 2005 也是看到 10.5, 點開 2008 也是看到 10.5, 謝謝二位

    Q5. 單位目前的環境, 不需要報表服務, 報表伺服器等等, 謝謝二位

    Q6. 謝謝二位, 已實驗過, 資料庫升級到 2008 之後, 卸下資料庫,
    移除 2005, 移除 2008, 再安裝 2008 R2, 附加上去, 確定可用 OK
    Client 端連線 OK, 謝謝二位


    目前只剩最後的 Q1 問題了...
    德瑞克老師這篇, 我這個菜鳥看的似懂非懂,
    http://sharedderrick.blogspot.com/2008/10/sqlserver.html

    裡面的中文字應該不必照著打吧 ?

    --01 更新 AdventureWorks 資料庫中之資料表的統計資料。 ( AdventureWorks 是什麼 ? 我不清楚 Orz|||
    USE Northwind; ( 我知道這個要改成我的 Database Name
    GO
    EXEC sp_updatestats

    --02 對每一個資料庫執行 sp_updatestats 作業
    USE master ( 所以總共是 4 個系統資料庫 + 1 個我的資料庫, 似乎是這樣
    GO
    EXEC sp_MSforeachdb @command1="print '?' EXEC [?].dbo.sp_updatestats" ( 這一行看到了 '?' [?] 也是照著打嗎 ?

    最後一個問題, 有勞二位了 >_<

    回覆刪除
  73. 請問,您文章最上方提到的將 Windows 預設暫存區設定到其他儲存槽中,
    要怎麼設定呢?
    要設定的內容包括哪些,可以指導我一下嗎?

    回覆刪除
    回覆
    1. 一是切獨立Partition(例如,D:, E: , F:),存被各種暫存資料。
      二是獨立一顆HDD,存放各種暫存資料。

      刪除
  74. 請問在遠端連線至sql時,您的伺服器名稱是192.168.3.12\ICSSQL
    想問您後方的ICSSQL為何,我目前只知道ip但不了解後方式從哪出來的

    回覆刪除
    回覆
    1. 那是你安裝時執行個體名稱,如果忘記,必須使用「組態工具」去看一下。

      刪除
  75. KK您好:先安裝VISUAL STUDIO 2008 後上網至微軟下載VISUAL STUDIO 2008 SP1,再安裝SQL SERVER 2008出現效能計數器登陸區一致性失敗的無法繼續,請問如何解決?謝謝(新手)

    回覆刪除
    回覆
    1. Dear 匿名

      在討論區上,有你一長串的討論(http://social.msdn.microsoft.com/Forums/zh-TW/230/thread/5ffa45d9-e7a1-4fa2-bc0c-a798f50cf70c)。
      SQL Server 與 SSMS 是兩套不同產品,

      SQL Server是資料庫,
      SSMS 是管理工具,

      由討論區來看,你已經完成 SQL Server 的安裝,或許你可以參考我另一篇:

      升級舊版SQL Server到SQL Server 2008 R2(http://blog.kkbruce.net/2010/06/sql-serversql-server-2008-r2.html#.T2fgVxH9MYk)
      記得,SSMS 也要安裝 R2 的版本,你可以 with Tool 的安裝檔,他會順便安裝 SSMS R2 版工具。

      如何連線,請細詳上面文章,有點長,但應該很有幫助才是。

      刪除
  76. 非常詳細又專業的文章,感謝您

    回覆刪除
  77. 你好~
    先謝謝你提供這麼詳細的文章,這對初學者的我真是受益很大.
    再請問,我目前是用vb 2010 express + sql 2008 r2 express在開發軟件
    我發現在你的 (5) ASP.NET連接遠端SQL Server 標題下的第2張圖,就是 "選擇資料來源:Microsoft SQL Server"這張跟我的vb有點出入,我的資料來源選項只有3種 MicroSoft Access資料庫檔案、MicroSoft SQL Server Compact3.5、MicroSoft SQL Server資料庫檔案 ,而你的資料來源選項有6種,不知是差在那裡,煩請告知,謝謝.

    回覆刪除
    回覆
    1. 我使用的付費版本的 Visual Studio,
      1. 不知道是不是Visual Studio Express 與Visual Studio 付費版之間的差界?
      2. 我畫面上是 ASP.NET GridView 控制項所提供的選項;VB 2010 Express應該是開發WinForm,我沒有寫WinForm,所以不知道是否有差異?

      刪除
    2. ok~謝謝告知
      我再去找答案~~

      刪除
  78. 想請問你一些問題喔>"<
    我按照你的教學步驟安裝SQL
    但是還是有一些問題出現
    安裝完成後
    他顯示安裝成功
    但是我在開始選單內卻找不到 SQL Server Management Studio
    就是無法開啟SQL...
    另外
    防火牆的部分也是使用bat執行批次檔
    可是重新執行卻還是出現防火牆未開啟(警告)
    最後在確認組態管理那邊
    SQL Sever Agent (SQLEXPRESS) 和
    SQL Sever Agent(SQLCHEN) 這兩項都顯示已停止
    按啟動 都會被拒絕
    重新試了好多次 都不行
    可以幫我解答可能的原因跟解決辦法嗎QAQ
    我有在你所連結的另一位教學部落格那邊留言
    但想說多一些意見>"<

    拜託麻煩你了 QAQ

    回覆刪除
    回覆
    1. 1. SQL Server Management Studio必須是相對應的安裝版本才會有。已經安裝好SQL,也有單SSMS可以下載安裝。
      2. SQL Sever Agent (SQLEXPRESS),Express版本不支援。請細看功能差異。
      3. 如果是非XP系統,可考慮上sql server 2012 express版本。這裡有另一篇教學:http://blog.kkbruce.net/2012/10/microsoft-sql-server-2012-express-donwload-and-install.html

      刪除
  79. 的確是沒下載SSMS的問題...
    太感謝你了!!!^^

    回覆刪除
  80. 不好意思,我想請問一下我都按照上述步驟安裝也成功了,但是始終無法遠端連線:(
    我目前還是學生,非常需要使用資料庫:(但是卻一直遠端連線失敗...
    想請問你有詳細的防火牆設定解說嗎:( 因為防火牆我不會設定...
    他一直出現,建立連接至SQL Server時,發生網路相關或執行個體特定的錯誤。找不到或無法存取伺服器。確認執行個體名稱是否正確,以及SQL Server 是否設定為允許遠端連線。(provider:TCP 提供者,error:0-連線嘗試失敗,因為連線對象有一段時間並未正確回應,或是連線建立失敗,因為連線的主機無法回應。)(Microsoft SQL Server,錯誤:10060)
    拜託你了><"請你幫幫我吧..

    回覆刪除
    回覆
    1. 如果都是在內網,應該是可以直接連線。
      如果要由外網連回,那需要管理者在防火牆上設定Forward…這請找你們的管理者。

      刪除
  81. 因為我們都是住租屋處,都是共用網路的,但是我們住的地方不同
    所以意思是說是因為這樣造成無法連線成功的嗎?這樣算是外網嗎?

    回覆刪除
    回覆
    1. 網路架構的內容…我無法細說明…而且,我也不知道你們的實體架構 XD

      最簡單的方案,請在同一台電腦安裝SQL Server,本機自連、練習。如果還有問題,請找"老師"幫忙。

      刪除
  82. 感謝你的解答,大概瞭解了~我會再另行解決的~謝謝:) 文章很棒!!

    回覆刪除
    回覆
    1. 沒幫上什麼忙。因為遠端連線需要加上"網路"相關知識,這部分我比較難在Blog幫的上忙。

      刪除
  83. 還是很感謝你:),我有用VB寫了一個測試連線資料庫的,我室友的電腦可以連接到我資料庫:)(這是屬於內網)
    我同學的住在另外一棟就是屬於外網了!我了解摟:)非常感謝你的協助!因為只是要做專題,哈哈:D
    很高興在網路上發現你的文章,因為你的文章也幫助我順利安裝,還有操作設定:)很厲害!!謝謝你:)

    回覆刪除
  84. A --> Getway(IP) --> B(DB)

    A必須連線至B的Getway的對外實體IP, 而B的Getway必須設定Port Forward,當1433 Port連入時,Forward給電腦B,電腦B的防火牆要讓1433 port開放。

    遠端連線大致要符合以上條件。

    回覆刪除
  85. 恩恩@@,瞭解了:),我們在把資料庫拿去裝在我們可以連的上的電腦和網路,這樣就可以了:D
    非常感謝你的解說,辛苦你了><"因為我們沒有學到資料庫,所以都是看書做的!!感謝你~

    回覆刪除
  86. 試著在Windows Server 2008 R2 安裝 SQL Server 2008 R2 Express SP2,
    步驟稍微簡化了一些,但是您的這篇文章給了相當大的幫助!
    感謝您的不吝分享~

    回覆刪除
  87. 深入淺出的講解 目前看到就您這篇內容最豐富詳細
    您這一篇造福了像我們這些初入MS SQL的新手
    期待您未來的大作....

    回覆刪除
  88. 這篇真的是幫了我大忙 真的太感謝作者了!!!!
    給你10000個讚

    回覆刪除
  89. 你好,我是billy,你的教學很有用,但我有些問題想指教你...
    我用window form application寫了個program,但要入資料時,它運行時行了catch那一段..
    "Can not open connection ! Login failed for user 'billy'."
    是不是我有些設定沒set好?我已依照你的方法set好port和啟動了服務..
    我想問點解決..爬文也找不了..求解,謝!

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    using System.Data.Common;


    namespace WindowsFormsQRcode
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
    // TODO: This line of code loads data into the 'qRcodedatabaseDataSet.RegistrationTable' table. You can move, or remove it, as needed.
    this.registrationTableTableAdapter.Fill(this.qRcodedatabaseDataSet.RegistrationTable);

    }

    private void button1_Click(object sender, EventArgs e)
    {
    textBox1.Clear();
    textBox2.Clear();
    textBox3.Clear();
    textBox4.Clear();

    }

    private void btnInsertt_Click(object sender, EventArgs e)
    {


    string connetionString = null;

    connetionString = "Data Source=.;Initial Catalog=QRcodedatabase;Persist Security Info=True;User ID=billy;Password=A5G14M68QX!";
    SqlConnection sqlCnn;
    try
    {
    if (textBox1.Text.Length < 1)
    {
    label7.Text = "Please Enter Required Fields in TextBox";
    return;
    }
    else if (textBox2.Text.Length < 1)
    {
    label7.Text = "Please Enter Required Fields in TextBox";
    return;
    }
    else if (textBox3.Text.Length < 1)
    {
    label7.Text = "Please Enter Required Fields in TextBox";
    return;
    }
    else if (textBox4.Text.Length < 1)
    {
    label7.Text = "Please Enter Required Fields in TextBox";
    return;
    }


    sqlCnn = new SqlConnection(connetionString);
    SqlCommand sqlco = sqlCnn.CreateCommand();
    sqlCnn.Open();
    string cmd = "insert into RegistrationTable values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "')";
    SqlCommand sqlcmd = new SqlCommand(cmd, sqlCnn);
    sqlcmd.ExecuteNonQuery();
    MessageBox.Show("Record is inserted Sucessfully ! ");
    sqlCnn.Close();
    }
    catch (Exception ex)
    {
    MessageBox.Show("Can not open connection ! " + ex.Message);
    }
    }

    }
    }

    回覆刪除
    回覆
    1. 一、
      Data Source=.

      .是用於存取與程式相同的主機上,你是連本機還是遠端?

      二、是否啟用「混合模式」?

      三、不使用程式,使用SSMS連接是否能成功?

      刪除
    2. 我是連接本機的sql server,已啟用了混合模式了,直接使用SSMS也能入...
      我試過改"Data Source=.;"變做"Data Source=.\SQLTEST;"但係佢有error,出現"Unrecognized escape sequence"..
      是不是有什麼set錯了,求指教,謝!

      刪除
    3. C#,請注意\與\\的問題。

      http://stackoverflow.com/questions/1302864/unrecognized-escape-sequence-for-string-containing-backslashes-in-c-sharp

      參考一下。

      刪除
    4. 感謝,我忘記了....XD,問題已解決,謝!

      刪除
  90. 謝謝,您提供的資訊很有用

    回覆刪除
  91. 不好意思!目前安裝到此出現此問題,請問該如何解決?

    >>遺漏系統管理者帳戶,若要繼續,請至少提供...

    請問該如何解決~"~

    回覆刪除
    回覆
    1. 一般本機電腦(或說自己的電腦)應該登入的帳戶就是系統管理者。
      如果是公司、電腦教室…請找“管理員”。

      刪除
  92. 請問~
    1.我的windows xp不是正版的,是否不能安裝windows powershell? 有何解決方案嗎?

    回覆刪除
  93. 請問安裝到伺服器組態時出現,標題: 訊息詳細資料
    ------------------------------

    為 SQL Server 服務提供的指定認證無效。若要繼續,請提供 SQL Server 服務的有效帳戶和密碼。

    ------------------------------
    按鈕:

    確定
    ------------------------------

    標題: 訊息詳細資料
    ------------------------------

    您為 Reporting Services 服務提供的認證無效。若要繼續,請為 Reporting Services 服務提供有效的帳戶和密碼

    ------------------------------
    按鈕:

    確定
    ------------------------------


    該如何解決??

    回覆刪除
    回覆
    1. 你指定的帳戶確定有效?本機的話,一般都是指定到自己。
      另外可改安裝 SQL Server 2012 Express,步驟又簡化許多:http://blog.kkbruce.net/2012/10/microsoft-sql-server-2012-express-donwload-and-install.html
      目前可下載最新 R2 的版本。

      刪除
  94. 陳先生,您好,我近日架設網站 使用一台Windows Server 2012 R2 (昇級成網域控制站) 搭配 SQL Server2014 ,
    這幾天由於DNS伺服器一直沒辦法設定好,來回修改過完整電腦名稱,也來回降級昇級網域兩次 移除重安裝伺服器。
    昨天要登入SQL Server時,卻無法登入。目前電腦名稱是ica1,顯示授權或身分不對。
    我從伺服器瀏覽裡找到一開始設定的電腦名稱server是可以登入的。
    Q1.請問一下是哪邊有錯誤?

    Q2.我無法開啟SQL 組態管理員,視窗顯示 無法連接到WMI提供者。你沒有權限或無法連上伺服器。你只能使用SQL Server組態管理員來管理SQL Server2005(含)以後版本的伺服器。存取被拒[0x80070005]
    我就是在開組態管理員啊....冏
    請問我該如何解決這問題?

    回覆刪除
  95. 你好!!我是位大學生...因為專題需要用到資料庫!! 我是使用VB+SQL SERVER 來撰寫與讀取
    但是我在SQL SERVER建立好新的資料庫1然後在裡面建立資料表與資料內容,但在我資料庫1裡使用工作-產生指令碼把資料庫拉出來後
    然後刪除資料庫1,使用產生指令碼的資料庫重新開啟資料庫1,為什麼匯入後,資料表的資料都會消失呢!? 因為到時候專題必須移轉到學校,所以不須把資料庫產生指令碼匯出到學校使用
    可是我光在家裡把資料庫砍掉然後匯入就都失敗了。麻煩版主是否能幫我解惑。或是版主上述的處理方式利用遠端連線就能在我電腦上設計好,然後不管在何處我只需用遠端連線進來就好,倘若可以這樣需要架設伺服器嘛!?
    還是我本身電腦直接利用的使用者新建的資料庫就可以了

    回覆刪除
    回覆
    1. 幫你找一套小工具 http://www.dotblogs.com.tw/ricochen/archive/2013/01/20/87679.aspx

      刪除
  96. 你好!!我是位大學生...因為專題需要用到資料庫!! 我是使用VB+SQL SERVER 來撰寫與讀取
    但是我在SQL SERVER建立好新的資料庫1然後在裡面建立資料表與資料內容,但在我資料庫1裡使用工作-產生指令碼把資料庫拉出來後
    然後刪除資料庫1,使用產生指令碼的資料庫重新開啟資料庫1,為什麼匯入後,資料表的資料都會消失呢!? 因為到時候專題必須移轉到學校,所以不須把資料庫產生指令碼匯出到學校使用
    可是我光在家裡把資料庫砍掉然後匯入就都失敗了。麻煩版主是否能幫我解惑。或是版主上述的處理方式利用遠端連線就能在我電腦上設計好,然後不管在何處我只需用遠端連線進來就好,倘若可以這樣需要架設伺服器嘛!?
    還是我本身電腦直接利用的使用者新建的資料庫就可以了

    回覆刪除
    回覆
    1. 您好,請確認一下,當你在進行產生指令碼時是否有去確認 要編寫指令碼的資料類型為何?
      是 結構描述和資料、僅限結構描述、僅限資料

      刪除
  97. 您好,我目前要架設購物車(opencart),因為我們租的網路空間是windows平台,所以只能用MSSQL而且是SQL server 2000。
    不過我的作業系統是windows 7,這樣可以安裝SQL server 2000嗎?

    回覆刪除

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「+1」,我會很高興的。

无觅相关文章插件,迅速提升网站流量