Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 脱机应用程序的加密数据库?_C#_Sql_Sql Server_Wcf_Localdb - Fatal编程技术网

C# 脱机应用程序的加密数据库?

C# 脱机应用程序的加密数据库?,c#,sql,sql-server,wcf,localdb,C#,Sql,Sql Server,Wcf,Localdb,我们目前面临的问题是提供服务器客户端应用程序(WCF/Silverlight)的脱机版本。在我们的服务器上,我们目前正在使用一个重量级MSSQL服务器,存储全局和用户数据 现在,为了提供脱机版本,我们必须提供一个本地数据库子集。无论如何,它都必须存储大量数据(可能大于6GB) 现在我们不希望任何人能够修改甚至看到数据库结构和数据。但据我所知,localdb或sqlexpress始终存在一个问题,即了解SQL的本地管理员可以使用sa打开和操作db 您的建议是什么?您看过sqlite吗?尝试这里的答

我们目前面临的问题是提供服务器客户端应用程序(WCF/Silverlight)的脱机版本。在我们的服务器上,我们目前正在使用一个重量级MSSQL服务器,存储全局和用户数据

现在,为了提供脱机版本,我们必须提供一个本地数据库子集。无论如何,它都必须存储大量数据(可能大于6GB)

现在我们不希望任何人能够修改甚至看到数据库结构和数据。但据我所知,localdb或sqlexpress始终存在一个问题,即了解SQL的本地管理员可以使用sa打开和操作db


您的建议是什么?

您看过sqlite吗?尝试这里的答案-或者可以做这个(商业产品)-无论你选择什么技术,“本地管理员与知识”将始终能够阅读它,即使它是加密的。如果用户具有管理权限,并且他们被确定,那么他们对您的程序进行反向工程、获取解密密钥并自己查看数据库只是时间问题。您需要问自己的问题是,您在“保护数据库”上花费的任何金钱是否会比用户访问数据库时的“潜在损失”为您节省更多的钱。如果您可以使用不同类型的数据存储,如NoSQL、xml或json,然后,您可以将数据存储在文件中,并使用.NET中的任何system.security库对其进行加密。即使使用加密,也很难阻止管理员访问您的SQL数据文件