采用集成的Windows驗證和使用Sql Server身份驗證進行數據庫的登錄
1、集成的Windows身份驗證語法范例
1
|
<connectionStrings>
|
說明:程序代碼中,設置了一個針對Sql Server數據庫的連接字符串。其中server表示運行Sql Server的計算機名,由於程序和數據庫系統是位於同一台計算機的,所以我們可以用.(或localhost)取代當前的計算機名。
database表示所使用的數據庫名(myschool)。由於我們希望采用集成的Windows驗證方式,所以設置 integrated security為SSPI即可。
2、Sql Server 2005中的Windows身份驗證模式如下:
1
|
string
constr =
"server=.;database=myschool;uid=sa;pwd=sa"
;
|
說明:程序代碼中,采用了使用已知的用戶名和密碼驗證進行數據庫的登錄。數據庫連接字符串是不區分大小寫的。uid為指定的數據庫用戶名,pwd為指定的用戶口令。
為了安全起見,一般不要在代碼中包括用戶名和口令,你可以采用前面的集成的Windows驗證方式或者對Web.Config文件中的連接字符串加密的方式提高程序的安全性。
window身份驗證跟sql server身份驗證的區別
windows身份驗證:
只要能登錄操作系統的用戶都可以登錄數據庫。windows身份驗證由windows驗證並分配有效的安全ID,同時也只能windows用戶登錄連接。
需要在數據庫中設置用戶和密碼,才能登錄可以登錄的數據庫。必須提供SQL Server用戶ID和密碼
優缺點:
Windows身份驗證使用單一的用戶信息庫源,因此,不需要為數據庫訪問去分別配置用戶。
連接字符串不包含用戶ID和密碼,因此消除了把用戶ID和密碼暴露給未授權的用戶的危險。可以在Active Directory中管理用戶和他們的角色,而不必在SQLServer中顯式地配置他們的屬性。
Windows身份驗證的缺點是,它要求客戶通過Windows的安全子系統支持的安全通道去連接SQL Server。如果應用種序需要通過不安全的網絡(例如Internet)連接SQL Server,Windows身份驗證將不工作。
此外,這種身份驗證方法也部分地把管理數據庫訪問控制的責任從DBA身上轉移到了系統管理員身上,這在確定的環境中也是一個問題。