一般來說都是用 Windows 驗證連接資料庫,不過前幾天想把我本機的 SQL Server 2008 的 sa 帳戶啟用時卻發生『無法設定主體 ‘sa’ 的憑證』的錯誤 (如下圖),這個奇特的錯誤只會發生在使用 SQL Server 2008 的 SQL Server Management Studio (SSMS) 工具時,連用 SQL Server 2008 SSMS 設定設定 SQL Server 2005 也會出現一樣的問題。
解決方法也令人匪夷所思,只要切換到 [一般] 頁籤,並勾選 [對應到認證(M)] 即可更新完成,所有針對 sa 帳戶的操作如改密碼、改狀態、…等等都需要勾選這個勾選項目才行:
我透過點選 [指令碼] 按鈕 ( 參見 查詢透過 Management Studio 的 GUI 所執行的 T-SQL 指令 ) 取得指令碼發現,透過 GUI 的操作的些微差異的確會影響 T-SQL 的指令,如果會使用 T-SQL 指令操作或管理資料庫的人應該不會有這些困擾。
1. 如果沒有勾選 [對應到認證(M)] 時產生的指令碼如下:
USE [master]
GO
ALTER LOGIN [sa] WITH DEFAULT_DATABASE=[master],
DEFAULT_LANGUAGE=[繁體中文], CHECK_EXPIRATION=OFF,
CHECK_POLICY=ON, NO CREDENTIAL
GO
ALTER LOGIN [sa] ENABLE
GO
2. 如果有勾選 [對應到認證(M)] 時產生的指令碼如下:
ALTER LOGIN [sa] ENABLE
GO
相關連結
- 當您嘗試使用 SQL Server Management Studio 中修改 SQL Server 系統管理員帳戶的屬性時,在 SQL Server 2008 中收到例外狀況
- You receive an exception in SQL Server 2008 when you try to modify the properties of the SQL Server Administrator account by using SQL Server Management Studio
- Cannot set a credential for principal 'sa'. (SQL Server 2005/2008)