The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

解決 SQL Server 2008『無法設定主體 ‘sa’ 的憑證』的問題

我一般來說都是用 Windows 驗證連接資料庫,不過前幾天想把我本機的 SQL Server 2008 的 sa 帳戶啟用時卻發生『無法設定主體 ‘sa’ 的憑證』的錯誤 (如下圖),這個奇特的錯誤只會發生在使用 SQL Server 2008 的 SQL Server Management Studio (SSMS) 工具時,連用 SQL Server 2008 SSMS 設定設定 SQL Server 2005 也會出現一樣的問題。

無法設定主體 ‘sa’ 的憑證

解決方法也令人匪夷所思,只要切換到 [一般] 頁籤,並勾選 [對應到認證(M)] 即可更新完成,所有針對 sa 帳戶的操作如改密碼、改狀態、…等等都需要勾選這個勾選項目才行:

image

我透過點選 [指令碼] 按鈕 ( 參見 查詢透過 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

相關連結