我正在开发一个Windows应用程序。当我将此软件提供给客户端时,还需要提供数据库吗?我想在他的计算机上锁定SQL Server数据库,以便他无法打开该数据库或复制或查看其架构或他可以访问该数据库的任何内容。
当他试图访问时,它必须要求输入密码。那么,上述解决方案是什么?
答案 0 :(得分:0)
SQL Server数据库无法受密码保护 - 它们不仅仅是打开的文件(如dBase或SQLite)
“正常”访问控制是通过权限和用户处理的 - 您可以定义谁可以查看内容,修改内容,删除内容
但这并不妨碍系统管理员查看您的数据库架构和内容;实际上没有办法阻止这种情况,系统管理员也可以将.mdf
文件复制到另一台服务器并将其附加到那里并绕过所有“安全”
如果您真的必须隐藏所有这些,请不要提供数据库 - 隐藏您自己公司的数据库,并为客户提供基于Web服务的界面,然后客户可以调用这些Web服务来执行他的操作工作 - 然后架构和数据在你的控制之下,但是:客户的数据不再在他的控制下,所以他可能不喜欢......