2010-02-17 40 views
0

到目前爲止,在創建具有所有模式的數據庫之後,我所做的所有工作都是通過參考連接字符串來訪問它們(表格) 。爲了訪問位於SQL Server 2008的數據庫而創建用戶有什麼意義?

現在,兩次,我讀過,這是更好地創建一個數據庫用戶,並通過包括他在C onnectionString訪問DB trhough用戶。

我想知道這是爲什麼?

感謝您的幫助

+1

出於安全原因?說有人設法操縱數據並在SQL服務器上運行任意命令..你不希望他/她在sql服務器上的權限有限,以至於他/她無法接管系統嗎? – 2010-02-17 13:11:21

+1

「安全」可能是一個原因嗎? – 2010-02-17 13:11:36

+0

所以如果安全是唯一的原因,我可以繞過(用戶)在開發階段?並在生產中迴歸這一點? – Richard77 2010-02-17 13:20:50

回答

0

如果您希望以特定用戶身份進行連接,而不是(例如)僅使用運行應用程序的當前用戶的上下文,則可以這樣做。但是,如果您使用SQL Server身份驗證(即用戶名和密碼),則需要在連接字符串中提供該密碼,這是一個安全問題。

如果應用程序有一組匿名用戶(或自己管理用戶/密碼),那麼最好使用Windows登錄並使用服務帳戶(對數據庫的訪問權限最小)運行應用程序。

如果您在桌面上運行交互式應用程序,您應該讓這些用戶在自己的上下文中連接到SQL Server,並將它們添加到具有所需權限的SQL Server中(例如db讀取/寫入,功能)。顯然你會使用組來簡化管理,而不是增加個人用戶。

1

您的問題不太清楚。看來你問的是使用Windows安全性(連接字符串中的「Integrated Security = SSPI」)還是用戶名/密碼(「User ID = myUsername; Password = myPassword;」)是否更好。

它總是更好地使用Windows安全。在連接字符串中有登錄信息是安全風險。它以明文形式(除非您採取一些複雜的步驟來保護該部分),並以明文形式通過線路發送,除非您在應用程序和服務器之間設置了可信連接。

「創建一個數據庫用戶並通過將他包含在連接字符串中來訪問數據庫會更好嗎?」不是。最好爲用戶的Windows身份創建一個sql server登錄名,並讓他們使用這些憑據訪問服務器。

相關問題