我使用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
文件相关联。那么任何其他人都无法打开它吗?
答案 0 :(得分:1)
如果您的意思是保护用户的文件,我认为答案是否定的,您不能。用户可以简单地复制文件。
LocalDB始终在用户安全上下文下运行;也就是LocalDB 永远不会使用本地管理员组的凭据运行。这个 表示必须是LocalDB实例使用的所有数据库文件 没有使用拥有用户的Windows帐户访问 考虑当地管理员组的成员资格。
有关详细信息,请参阅SQL Server 2012 Express LocalDB
中的权限部分我相信您可以选择使用.Net Framework和TSQL方法加密和解密数据,但是您无法使用数据库加密选项保护数据库对象,因为LocalDB不支持TDE(透明数据加密)。
答案 1 :(得分:0)
如果您愿意考虑可能对您有所帮助的第三方产品(可能还有其他产品),则可以考虑使用NetLib Encryptionizer。它类似于SQL Server TDE,但可用于SQL Server的所有版本,包括Express和LocalDB。通常由应用程序开发人员使用。但是,它的工作方式不同于SQL的内置TDE。 SQL TDE(显然)内置于SQL Server中,并在页面级别进行加密。 Encryptionizer位于SQL和操作系统之间,并在文件级别进行加密。
我相信还有另一种产品DBEncrypt,但是我不确定是否支持LocalDB。通过向正在运行的SQL进程中注入代码来工作。
(免责声明:我来自NetLib Security)。