Sql-Server
當我的數據庫定義安裝在他們的伺服器上時,如何防止我的客戶查看我的數據庫定義?
我想將我的數據庫提供給客戶端以安裝在他們的伺服器上。
但是,我想拒絕客戶端查看表和儲存過程的權限,並且還想限制該數據庫從單個 IP 地址執行。
即使數據庫存在於他們的伺服器上,如何阻止使用者查看數據庫表?
我們希望讓應用程序在自己的伺服器上執行,但我們不想顯示表和儲存過程。他們也不應該對數據庫進行任何修改。這可能嗎?
也許我們可以在web.config文件中加密數據庫憑據?
簡短的回答:你不能。
如果數據庫在客戶的基礎設施上執行,那麼客戶必須能夠控制他們自己的基礎設施。沒有它,他們就無法運作。
如果你真的不希望他們擁有那種控制權,那麼你就不能給他們數據庫。這是“軟體即服務”操作模型,您可以在其中許可應用程序,但不能使用事物的“後端”。
我建議這不是技術問題。這是一個許可。
我假設您的軟體的許可協議包含一項條款,該條款阻止任何客戶“逆向工程”您產品的任何部分。應該擴展該子句以包括您的數據庫。
對數據庫的任何“搗亂”都應該無效
$$ at least $$您與該客戶的支持協議。如果他們想承擔這種風險,那取決於他們。
除非您控制登錄權限,否則您將無法限制它們。所以想像你只授予他們基本的 SELECT 來查看表數據。由於您不維護伺服器,因此他們可以輕鬆獲得管理員權限。維護內容仍應由客戶端進行,一旦進行備份,他們就可以看到架構,sp ..
我能想到的一種方法是啟用審計和登錄,但有一些缺點。整個問題歸結為信任。我們管理一個大小約為 600GB 的第三方數據庫。供應商明確表示,任何更改都應通過我們完成,支持條款不適用於未通過我們完成的導致應用程序關閉的事情。由於他們有模式,他們可以輕鬆地將其與更改的模式進行比較。