簡體   English   中英

如何查看無法在SQL Server 2008 R2中修改的存儲過程的定義?

[英]How do I view the definition for a stored procedure that cannot be modified in SQL Server 2008 R2?

我試圖查看駐留在SQL Server 2008 R2中運行的數據庫中的存儲過程。 我在[dbName] > Programmability > Stored Procedures > dbo.[sprocName]下找到了存儲過程,但它旁邊有一個小掛鎖圖標,當我右鍵單擊它來修改它時,修改選項顯示為灰色。

然后我嘗試通過查詢數據庫中的對象來訪問該定義,如下所示:

use [dbName];
select * from sys.sql_modules
where definition LIKE '%[sprocName]%'

這不會產生所需存儲過程的定義,但查詢確實適用於我已經可以修改的存儲過程。

如何在不獲得修改權限的情況下查看此存儲過程的定義?

更新

看來Sproc實際上是基於以下錯誤消息加密的:

TITLE: Microsoft SQL Server Management Studio
------------------------------

Script failed for StoredProcedure 'dbo.[sprocName]'.  (Microsoft.SqlServer.Smo)

------------------------------
ADDITIONAL INFORMATION:

Property TextHeader is not available for StoredProcedure '[dbo].[sprocName]'. This property may not exist for this object, or may not be retrievable due to insufficient access rights.  
    The text is encrypted. (Microsoft.SqlServer.Smo)

為了做到這一點,你需要擁有所有必要的權限(基本上是SA),但這里是一個你應該能夠遵循的網站來解決問題。

http://sqljunkieshare.com/2012/03/07/decrypting-encrypted-stored-procedures-views-functions-in-sql-server-20052008-r2/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM