goo*_*yui 27 sql-server-2008 sql-server sql-server-2012
我正在开发第三方数据库。
当我尝试通过右键单击查看视图的定义时,CREATE TO然后单击 ,NEW QUERY EDIT WINDOW出现错误:
此对象可能不存在此属性,或者可能由于访问权限不足而无法检索。文本已加密。
Seb*_*ine 19
我在这里有关于这个问题的相当详细的描述。
简而言之,对象并没有真正加密,而是被混淆了。因此我们可以找回原来的回来。该方法有点复杂,但它由以下步骤组成:
像这样选择混淆代码:
SELECT @secret = imageval
FROM sys.sysobjvalues
WHERE objid = OBJECT_ID(@object_name);
Run Code Online (Sandbox Code Playgroud)用另一个具有相同名称、相同 object_id 和相同字节长度的对象替换该对象(例如使用ALTER PROCEDURE)
这会给你原始代码。但是,正如 Kin 所提到的,这样做可能会产生支持甚至法律影响,因此请务必先咨询您的律师。
Pau*_*ite 15
模块文本使用RC4流密码进行加密。
RC4 初始化密钥是根据以下SHA-1哈希计算得出的:
模块的对象子 ID 是:
然后,具有适当特权的用户可以通过以下方式解密模块:
我的文章中有更多细节和完整的代码实现:
mic*_*des 14
另一个可以用来即时解密加密对象的第三方工具是 Red Gate 的 SQL Prompt:http : //www.red-gate.com/products/sql-development/sql-prompt/features
将鼠标悬停在存储过程上将允许您查看解密的创建脚本。
免责声明:这个工具是商业的(有 14 天的免费试用期),我为 Red Gate 工作。
Kin*_*hah 11
您可以使用专用管理员连接 (DAC)连接到 SQL Server,然后查看存储过程的 sql 文本。使用以下方法连接到 DAC:
admin:Your_Servername
Run Code Online (Sandbox Code Playgroud)
您可以在所需要的完整步骤,这个答案对堆栈溢出由马丁·史密斯。
另一种替代方法是使用一些第三方脚本,如解密 SQL Server 2005、2008 和 R2 中的加密存储过程、视图、函数中所述
附带说明- 如果它是第三方数据库,并且您是在产品上进行的,供应商会支持它吗?可能有充分的理由加密 SP 或视图。最好先备份一下,然后再摆弄它。
小智 9
如果要预览原始 DDL 脚本或解密加密对象,可以查看ApexSQL Decrypt
它是一个免费的独立工具,可选择将其集成到 SSMS 中,预览原始 DDL 脚本。此外,您可以一次解密位于多台服务器上的对象。另一种可以帮助您的工具是dbForge SQL Decryptor
| 归档时间: |
|
| 查看次数: |
97917 次 |
| 最近记录: |