簡體   English   中英

在 SQL 服務器中創建隱藏數據庫

[英]Create hidden database in SQL Server

我在 C# 中編寫了一個 Windows 應用程序,該應用程序連接到 SQL 服務器數據庫。 我從應用程序內部運行此查詢以創建 SQL 服務器用戶身份驗證,這可能對 PC 用戶隱藏:

SET @LoginName = 'TestAdmin'
SET @Password = 'pass@word1'

-- Create user
SET @SQL = 'Create Login ' + @LoginName + ' with Password = ''' + @Password + ''''

EXEC sp_executesql @SQL

-- Adding user to sysadmin role
EXEC sp_addsrvrolemember @LoginName, 'sysadmin'

我打算上傳一個.SQL文件來創建包含表和數據的數據庫,所有這些都可以通過應用程序以編程方式完成。 我不希望應用程序用戶或 PC 所有者擁有對該數據庫的完全訪問權限。

問題:

當我從 go 到 SQL Server Management Studio 時,作為用戶,我可以簡單地使用 Windows 身份驗證連接到數據庫,並且可以完全訪問數據庫表和數據嗎? 我怎樣才能防止這種情況? 我只希望該應用程序可以訪問其數據庫?

我知道這是您應用程序的一些內部數據庫? 那正確嗎? 假設應用程序的客戶端安裝了 Sql 服務器(這是有風險的假設)

不過,如果您希望數據只能用於您的應用程序,我建議您使用 SqlLite 數據庫(數據庫作為應用程序文件夾中的文件)

您可以按照此處的說明對其進行密碼保護: 密碼保護 SQLite DB。 可能嗎?

當然,如果要防止篡改,則必須考慮如何存儲密碼。 如果你這樣做了,那在代碼中 - 它可以在反編譯后查看。 然后你將不得不考慮代碼混淆。 最好從網絡獲取密鑰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM