ADO.NET SQL Server身份驗(yàn)證兩種模式揭秘
ADO.NET經(jīng)過(guò)長(zhǎng)時(shí)間的發(fā)展,很多用戶都很了解ADO.NET SQL Server了,這里我發(fā)表一下個(gè)人理解,和大家討論討論。ADO.NET SQL Server身份驗(yàn)證支持兩種模式,Windows 身份驗(yàn)證模式和混合模式。
◆Windows 身份驗(yàn)證是默認(rèn)模式(通常稱為集成安全),因?yàn)榇?SQL Server 安全模型與 Windows 高度集成。信任特定 Windows 用戶和組帳戶登錄 SQL Server。已經(jīng)過(guò)身份驗(yàn)證的 Windows 用戶不必提供附加的憑據(jù)。
◆混合模式支持通過(guò) Windows 和 SQL Server 進(jìn)行的身份驗(yàn)證。用戶名和密碼對(duì)保留在 SQL Server 中。
我們建議盡可能使用 Windows 身份驗(yàn)證。Windows 身份驗(yàn)證使用一系列加密消息驗(yàn)證 SQL Server 中的用戶。使用 SQL Server 登錄時(shí),會(huì)通過(guò)網(wǎng)絡(luò)傳遞 SQL Server 登錄名和密碼,這樣會(huì)降低它們的安全性。使用 Windows 身份驗(yàn)證,已經(jīng)登錄到 Windows 的用戶不必再單獨(dú)登錄到 SQL Server。下面的 SqlConnection.ConnectionString 可指定 Windows 身份驗(yàn)證,而無(wú)需用戶名或密碼。
- "Server=MSSQL1;Database=AdventureWorks;Integrated Security=true;
登錄名與數(shù)據(jù)庫(kù)用戶名不同。您必須通過(guò)單獨(dú)的操作將登錄或 Windows 組映射到數(shù)據(jù)庫(kù)用戶或角色。然后向用戶或角色授予訪問(wèn)數(shù)據(jù)庫(kù)對(duì)象的權(quán)限。
ADO.NET SQL Server身份驗(yàn)證方案
在下列情形中,Windows 身份驗(yàn)證通常為最佳選擇:
◆存在域控制器。
◆應(yīng)用程序和數(shù)據(jù)庫(kù)位于同一臺(tái)計(jì)算機(jī)上。
◆您正在使用 SQL Server Express 的實(shí)例。
SQL Server 登錄常常在以下情況中使用:
◆您有工作組。
◆用戶從其他不受信任的域進(jìn)行連接。
◆Internet 應(yīng)用程序(例如 ASP.NET)。
指定 Windows 身份驗(yàn)證不會(huì)禁用 SQL Server 登錄。使用 ALTER LOGIN DISABLE Transact-SQL 語(yǔ)句會(huì)禁用具有高特權(quán)的 SQL Server 登錄。
ADO.NET SQL Server身份驗(yàn)證登錄類型
SQL Server 2000 支持三種登錄類型:
◆本地 Windows 用戶帳戶或受信任的域帳戶。SQL Server 依賴 Windows 來(lái)對(duì) Windows 用戶帳戶進(jìn)行身份驗(yàn)證。
◆Windows 組。向 Windows 組授予訪問(wèn)權(quán)限會(huì)向作為該組的成員的所有 Windows 用戶登錄授予訪問(wèn)權(quán)限。
◆SQL Server 登錄。SQL Server 將用戶名和密碼的哈希形式都存儲(chǔ)在 master 數(shù)據(jù)庫(kù)中,使用內(nèi)部身份驗(yàn)證方法驗(yàn)證嘗試的登錄。
混合模式身份驗(yàn)證
如果您必須使用混合模式身份驗(yàn)證,則必須創(chuàng)建 SQL Server 登錄名,將其存儲(chǔ)在 SQL Server 中。然后必須在運(yùn)行時(shí)提供 SQL Server 用戶名和密碼。SQL Server 使用名為 sa(“系統(tǒng)管理員”的縮寫)的 SQL Server 登錄進(jìn)行安裝。為 sa 登錄分配一個(gè)強(qiáng)密碼,并且不要在應(yīng)用程序中使用 sa 登錄。sa 登錄名會(huì)映射到 sysadmin 固定服務(wù)器角色,它對(duì)整個(gè)服務(wù)器有不能撤銷的管理憑據(jù)。如果攻擊者以系統(tǒng)管理員的身份獲取了訪問(wèn)權(quán)限,則可能造成的危害是無(wú)法預(yù)計(jì)的。
#T#SQL Server 2005 為在 Windows Server 2003 或更高版本上運(yùn)行的 SQL Server 登錄引入了 Windows 密碼策略機(jī)制。密碼復(fù)雜性策略通過(guò)增加可用密碼的數(shù)目來(lái)阻止暴力攻擊。SQL Server 2005 可將 Windows Server 2003 中使用的相同的復(fù)雜性和到期策略應(yīng)用到 SQL Server 中使用的密碼。連接來(lái)自用戶輸入的連接字符串會(huì)使您遭受連接字符串注入攻擊。可使用 SqlConnectionStringBuilder 在運(yùn)行時(shí)創(chuàng)建語(yǔ)法構(gòu)成有效的連接字符串。


















