SQL Server 智慧財產權(保護數據庫結構和關係)
我想知道有沒有關於保護數據庫結構的更新?我們提供了一個使用 SQL 作為其主要 DBMS 的許可應用程序,我們希望鎖定數據庫結構(模式)。
我知道我可以加密它自己的數據和儲存過程……等等。我想要最佳實踐來加密/保護/鎖定來自最終客戶端 DBA 的資料結構和關係。
在我們安裝和修復應用程序時,我可以訪問最終客戶端物理伺服器。
該應用程序是用 C# 編寫的,使用 linq to sql
恐懼是使用數據庫方案對解決方案進行逆向工程(並且已經發生過一次)。所以我們需要在安全的環境中執行我們的應用程序,並且它只使用本地數據庫。
我想知道有沒有關於保護數據庫結構的更新?
簡短的回答是沒有變化,這是一個傻瓜的差事。
我想要最佳實踐來加密/保護/鎖定來自最終客戶端 DBA 的資料結構和關係。
使用 SQL Server,沒有。如果您想這樣做,請為數據層製作完全合適的東西。
恐懼是使用數據庫方案對解決方案進行逆向工程(並且已經發生過一次)。
然後這應該通過訴訟或通過將數據層更改為不太為人所知或適當的東西來解決。我討厭通過默默無聞的安全性,因為它根本不起作用,所以只要沒有人真正關心反轉您的程式碼或附加調試器,適當性就會起作用。
這是您將繼續面臨的問題,無論如何 - 適當性,加密或其他……對方擁有硬體,因此可以複製硬體/軟體,然後將調試器附加到它並查看他們的任何內容想。這取決於您權衡選擇保護方案的選項。
SQL Server 管理員可以查看數據庫中的所有內容(模式明智),並且如果硬體所有者沒有管理登錄名(再次擁有硬體),則可以輕鬆接管實例。具有足夠權限的數據庫使用者可以看到架構。事實上,僅使用您的應用程序,使用者就可以猜出大部分模式,更不用說您是否有任何輸入區域,他們可能會濫用這些區域來查找更多資訊。
所以我們需要在安全的環境中執行我們的應用程序,並且它只使用本地數據庫。
如果他們擁有硬體,這是不可能的,因為環境不再安全。
我們不能使用 Azure,因為客戶端站點沒有 Internet 連接。
這意味著您也不能在本地託管它,它只能在他們的本地使用 - 所以再一次,您無法真正做到這一點,因為它會為您的軟體增加巨大的財務和技術負擔。
TL; 博士;
你真的無能為力,用訴訟作為一種手段來阻止或在經濟上毀掉那些違反規則的人。