2013年3月27日 星期三

升級為SQL Server Data Tools BI for VS 2012後

話說,SQL Server BI開發工具BIDS Business intellijgence Developer Studio 所用的版本總是落後Visual Studio一版

上週看到 SSDT(SQL 2012開始 BIDS已經改名為SQL Server Data Tools) 
Microsoft SQL Server Data Tools - Business Intelligence for Visual Studio 2012
下載安裝完後,原本vs2012的SQL Server Database Project 就沒法用了,出現了以下的錯誤訊息。


於是乎又去安裝了最新版的Microsoft® SQL Server® 2012 Data-Tier Application Framework (March 2013),也是沒路用.....
點了Learn more 及Get the lates version of SQL Server Data Tools的連結後,竟然是導引到

We are sorry. The page you requested cannot be found.


整個灰灑灑....

最後找回SQL Server Data Tools - December 2012 update(Visual Studio 2012)

重新安裝一次SSDT 後,就回復正常了.

同一個工具還分多個版本....金害啊...


SQL2012 SSL加密連線

需要測試sql server 2012 SSL加密連線
GOOGLE了幾篇文章後進行測試

1.如何啟用SQL Server的SSL加密
2.Setting up SSL encryption for SQL Server using certificates – Issues, tips & tricks
3.How to enable SSL encryption for an instance of SQL Server by using Microsoft Management Console
4.如何設定 SQL Server 2008 接受 SSL 加密連接 (需設定憑證)

先到微軟網站下載 makecert.exe
然後在DOS下執行
makecert -r -pe -n "CN=bev" -b 01/01/2013 -e 01/01/2036 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12

第一次建立時,搞不清CN要填什麼,大部份都說要填符合FQND(Fully Qualified Domain Name)的電腦名稱,但我的機器又未加入網域,所以第一次我就自已給了一個隨便符合FQND的名稱。
 
建立完後憑證後,再依KB的How to Configure the MMC Snap-in 設定進入憑證主控台在個人憑證下就可以看到憑證了

過程中,我是先使用 -sr currentuser 建立憑證,但進入主控台後,我在個人>>憑證目錄下看不到自已建立的憑證??
所以後來改用了-sr localMachine  就可看到所建立的憑證... (後來發現,看不到是因為用MMC進入主控台時是以目前帳號進入,而不是以本機電腦方式)

接著進入SQL Server Configuration Manager,在SQL Server網路組態>>SQL2012通訊協定內容,查看憑證頁籤下的下拉選單看不到任何的憑證???


再依著第三篇微軟KDB的Troubleshooting 步驟,先將個人憑證匯出後再匯入到受信任的根憑證授權單位下。
(匯出時我是選擇匯出私密金鑰,故會要求輸入一組密碼後,將憑證存成.pfx,故匯入時需要輸入相同密碼)

重啟sql server services,用SSMS開啟連結並以加密方式連結,就OK了.


不過我一直有個疑問,主機強制加密Force protocol encryption設為是時,代表伺服器強制SSL

但我試了一下,Client就算沒有勾選加密連線,一樣還是可以連接資料庫?
Client端還是可以不走SSL來連線?? WHY?

寫了一個測試網頁利用SSL連線,connection string  如下
<add name="test" connectionString="Data Source=testsvr;Initial Catalog=test;Persist Security Info=True;User ID=sa;password=sa;Encrypt=yes;TrustServerCertificate=True" providerName="System.Data.SqlClient" />

記得,本機要先把SSL憑證註冊到根目錄下。

publish error allowDefinition='MachineToApplication'

一個老舊的aspx web form專案,調了一些功能建置成功,但進行部署時顯示以下錯誤。 在應用程式層級之外使用註冊為 allowDefinition='MachineToApplication' 的區段發生錯誤。錯誤的原因可能是虛擬目錄尚未在 IIS 中設定為...