如何使用自定义密码保护SqlLocalDB数据库文件

问题描述 投票:0回答:2

我使用SqlLocalDb v11.0实例设计了一个软件。数据库将在用户的机器上(.mdf文件)。我之前使用的是SQL Server CE。

在SQL Server CE中,我的数据库受密码保护,其中“加密模式=引擎默认值”

有没有办法保护SqlLocalDB?

我知道有一种使用命名实例的方法,如链接https://msdn.microsoft.com/en-us/library/hh510202(v=sql.110).aspx

有没有办法将密码与LocalDB .mdf文件关联。那么任何其他人都无法打开它吗?

c# .net sql-server winforms localdb
2个回答
1
投票

如果你的意思是保护用户的文件,我认为答案是否定的,你不能。用户可以简单地复制文件。

LocalDB始终在用户安全上下文下运行;也就是说,LocalDB永远不会使用本地管理员组的凭据运行。这意味着必须使用拥有用户的Windows帐户访问LocalDB实例使用的所有数据库文件,而不考虑本地Administrators组中的成员身份。

有关更多信息,请参阅SQL Server 2012 Express LocalDB中的权限部分

我相信您可以选择使用.Net Framework和TSQL方法加密和解密数据,但是由于LocalDB不支持TDE(透明数据加密),因此无法使用数据库加密选项保护数据库对象。


0
投票

如果您愿意考虑可能对您有帮助的第三方产品(可能还有其他产品),您可能需要查看NetLib Encryptionizer。它类似于SQL Server TDE,但适用于SQL Server的所有版本和版本,包括Express和LocalDB。通常由应用程序开发人员使但它的工作方式与SQL的内置TDE不同。 SQL TDE(显然)构建在SQL Server中并在页面级别加密。加密器位于SQL和操作系统之间,并在文件级别加密。

还有另一个产品,我相信DBEncrypt,但我不确定是否支持LocalDB。它的工作原理是将代码注入正在运行的SQL进程中。

(免责声明:我来自NetLib Security)。

© www.soinside.com 2019 - 2024. All rights reserved.