Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.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
Sql server SQL Server 2005的缺点+;对象加密?_Sql Server_Encryption - Fatal编程技术网

Sql server SQL Server 2005的缺点+;对象加密?

Sql server SQL Server 2005的缺点+;对象加密?,sql-server,encryption,Sql Server,Encryption,对于远程部署产品附带的数据库,通过MS SQL Server 2005和2008中的with ENCRYPTION子句加密所有代码对象(过程、函数、视图)是否有任何缺点 其优点是阻止该领域的“定制”变化,解决一个需求,同时创造更多需求。其目标不是保护IP或数据,而是在无法管理更改对象的权限时帮助防止未经授权的代码更改(安全性不在开发人员之手,但修复由其他人引起的问题的责任是有限的) 采用这种方法可能会导致哪些新问题?Microsoft为此专门创建了此功能。我所能看到的唯一缺点是保护薄弱;可以通过

对于远程部署产品附带的数据库,通过MS SQL Server 2005和2008中的with ENCRYPTION子句加密所有代码对象(过程、函数、视图)是否有任何缺点

其优点是阻止该领域的“定制”变化,解决一个需求,同时创造更多需求。其目标不是保护IP或数据,而是在无法管理更改对象的权限时帮助防止未经授权的代码更改(安全性不在开发人员之手,但修复由其他人引起的问题的责任是有限的)


采用这种方法可能会导致哪些新问题?

Microsoft为此专门创建了此功能。我所能看到的唯一缺点是保护薄弱;可以通过公开可用的脚本来避免这种情况,并且可以使用SQL Profiler查看解密过程的明文。但是它仍然可以起到有效的威慑作用。

我们在一个企业产品中实施了加密,出于您指出的原因,我们部署到了200多个站点,以阻止逆向工程

在我们的情况下,这是更多的麻烦比它的价值。我们的客户从未真正改变过任何事情,这使得我们很难在现场调试问题。当所有内容都加密时,探查器不会提供所需的详细信息。我们通常需要加载存储过程的未加密版本等来调试问题


此外,如果您的模式与您期望的版本一致,则更难对其进行更改。大多数差异化工具无法区分加密对象。

您走错了路。使用加密是SQL 2000中过时的选项。它周围的道路是众所周知的,任何有经验的人都可以发现。正确的方法是使用。最好的方法是创建一个证书,对过程进行签名,然后删除私钥。这样,没有人,即使是你,可以在不破坏签名的情况下更改代码。这并不妨碍任何人修改程序,但一旦修改,他们就会破坏签名印章,篡改是显而易见的。您可以更进一步,确保过程本身没有执行其目的的权限(即无法读取尝试访问的表),但权限是从它们的签名中派生出来的(用于签名的证书被授予所需的权限)。这样,如果他们篡改代码,不仅会破坏封条,还会导致系统停止。解释这些操作的后果通常具有足够的威慑力。

SQL Server中有许多工具可以解密存储过程。 商业上有一种叫做SQLShield的工具,它改变了加密机制,使得公开和更改源代码变得更加困难。
但是,我必须说,加密过程使维护变得更加困难:比较、制作差异等。

我肯定读过一些有关探查器和加密对象的文档,但现在找不到它们。您在分析时是否使用DAC使细节可见?请看这里:实际上我自己还没有这样做。你的用户是否足够老练(或受虐狂)来解决这个问题?另请看这里:老练/受虐狂并不能完全描述问题,而且往往不是最终用户。有时候,商店附近的人会不厌其烦地在部署问题的正确解决方案时不寻求帮助。感谢典型的“让我帮你用谷歌搜索”回答我没有问的问题。加密强度和检测更改的能力都不是问题。这个问题是关于在我们没有任何途径对未经授权的更改施加后果的环境中,代码加密引起的潜在问题。在一个公共论坛上,许多人都看到了答案。如果对你没有用,我也不会在乎。不,我不需要谷歌搜索我密切参与的功能。。。