2014-09-24 61 views
-2

我已經創建了一個使用sql server數據庫的應用程序。保護我的SQL服務器數據庫

但問題是,用戶可以打開SQL Server Management Studio中,可以做任何事情,我不喜歡,例如:

1)可以修改內表中的值。

2)可以刪除記錄

3)可以看到,並能得到我的數據庫結構.....

......

如何保護我的數據庫,所以用戶只能在我的應用程序中修改這個數據庫,並且可以在我的應用程序之外做任何事情我不知道是否存在一種方法來保護我的數據庫密碼或.... ???例如,當我使用Access for database時,我使用密碼保護Access文件,並且只有我的應用程序可以打開此數據庫後。 可能包括在SQL Server數據庫文件(保護所以即使該文件導入到另一臺計算機受到保護

謝謝


更新:?! 請讓我,因爲我解釋有一個具體情況:我的數據B的

我的應用程序被指定爲管理多個「辦公室」

在我的應用程序文件夾,我有一個空的備份文件(脫機)。這個叫做「模型」。在我的應用程序中,用戶可以創建「一個新的辦公室」,當他這樣做時,應用程序會在特定的名稱(例如「Office1」)中恢復SQL Server內的「Model」副本,而另一次用戶可以創建另一個「Office 「再次使用的副本‘模式’

所以在SQL Server內部可能是不同的數據庫(它們都具有相同的結構),如‘模型’

因此,在這種情況下,我怎麼能保護我的數據庫和「模型」。

,因爲我覺得我應該申請一個保障示範單位‘(如果可能的話,已經從創建的所有數據庫的‘模型’將有保護)或者」脫機備份文件中’????

在這種情況下應該怎麼做?

謝謝!

+0

此主題已經在Stackoverflow上進行了廣泛的介紹。使用搜索並閱讀。 – 2014-09-24 01:55:16

回答

0

是的,您可以保護SQL Server數據庫免受不必要的入侵。

您可以將不同的組分配給數據庫角色。如果您爲每個有權訪問DB_DATAREADER角色的人員分配數據,則他們只能讀取數據。

在這裏閱讀更多 http://msdn.microsoft.com/en-us/library/ms189121.aspx

你的應用程序需要通過一個角色是db_datawriter權限連接。

DB_DATABASEOWNER角色或SYSADMIN角色(這是服務器級角色)中的某個人在缺省情況下將擁有對數據庫中所有對象的完全訪問權限(除非您撤消這些權限)。

+0

好的,但我可以停止sql服務器服務,並且在我可以將mdf文件複製到另一臺pc後,我就可以做我想做的事情。 – alex 2014-09-24 02:07:29

+0

@alex如果用戶具有更高的權限,那麼任何可以輕易破壞的特權都將鎖定它想要該用戶擁有的權限。 – 2014-09-24 03:27:41

+0

@alex:如果用戶可以自由訪問數據庫或其備份所在的方框,並且希望確保物理文件在傳輸到其他計算機時變得不可用,那麼可能您想要的是[數據庫加密](http:// msdn.microsoft.com/en-us/library/cc278098%28v=sql.100%29.aspx)。沒有任何親身體驗的經驗,所以不能評論這條道路是否是一個好主意。 (只是建議,因爲它似乎是在這種情況下的唯一解決方案。就個人而言,我會考慮改變情況的可能性。) – 2014-09-24 08:56:10