7

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)
4

1 に答える 1

2

これを行うには、必要なすべての権限 (基本的には SA) が必要ですが、問題を解決するために従うべきサイトは次のとおりです。

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

于 2015-10-08T18:24:25.353 に答える