2016-07-21 62 views
0

我爲一位朋友開發了一個帶有SQL Server 2008 R2數據庫的Winforms應用程序。Winform應用程序中的數據庫安全

當我部署&將它安裝到我的朋友的PC上;軟件清晰顯示數據庫文件。如果他在SQL Server中打開該文件,那麼他可以觀看我的SQL查詢,tbl結構等。

我只是想隱藏所有這些來自我的客戶。

我該怎麼做?

我在網上搜索一些軟件。當我將它安裝在我的電腦上時;它沒有顯示我任何數據庫文件。他們怎麼做?

請幫幫我。

+2

您應該將數據庫隱藏在具有身份驗證的web服務之後。切勿直接與客戶端的數據庫直接對話。 – SLaks

+0

您可以創建加密某些數據庫對象,但是,如果某些人擁有管理員權限,則可以對其進行解密。你無法隱藏數據庫管理員的東西。 – FLICKER

+0

1.通過使用Web服務,我無法從我的客戶端隱藏數據庫文件。 2. SQL 2014+版本中可用的加密/解密選項 我正在使用2008 R2。 – user3260083

回答

0

如果您的應用程序和數據庫都部署在您朋友的PC上,那麼幾乎沒有任何事情可以阻止他/她進入您的數據庫。

SQL Server中沒有阻止來自授權用戶(例如管理員)的模式視圖的功能,並且如果您擁有該計算機,則可以以多種方式將自己作爲管理員呈現給SQL Server,即使您最初並未添加到管理員角色或給定的SA帳戶訪問權限。您可以設置障礙,如將所有內容放入存儲過程,然後加密SP,但這只是一個小障礙,而不是牆壁。

這不是SQL Server獨有的,同樣的問題也適用於市場上幾乎所有的RDBMS。如果您擁有該盒子,則不難獲取數據庫內容。軟件供應商幾十年來一直在嘗試這樣做,而大多數公司只是合法地放棄和保護其IP。這對你來說並不安慰,但它是現實。

如果使用像Azure這樣的服務是可行的,則可以將您的應用程序託管在Azure中,並且數據庫可以是Azure SQL DB或VM中的常規SQL Server。如果功能集和表面區域適合你,我會推薦前者;它與您習慣的SQL Server機箱產品不一樣。但是,管理和保護的工作量要少得多。使用Azure中的應用程序,您的朋友和客戶端也可以通過瀏覽器訪問,並且不會直接訪問數據庫。即使應用程序安裝在您的朋友或客戶機器上的本地,也很容易設計應用程序,使其只能訪問數據,而不是其他任何東西。

相關問題