Как мы можем просмотреть тело зашифрованной хранимой процедуры в SSMS? - PullRequest
4 голосов
/ 12 марта 2012

Я создал новую инструкцию для хранимой процедуры WITH ENCRYPTION, теперь я хочу просмотреть ее тело.

Какое решение?

Ответы [ 3 ]

5 голосов
/ 05 октября 2013

В случае, когда хранимая процедура создается с опцией ENCRYPTED, SQL Server внутренне сохраняет текст с определением объекта в запутанном формате

Фактическое определение объекта сохраняется в системной таблице sys.sysobjvalues, который не доступен напрямую.Подключаясь к SQL Server с помощью выделенного подключения администратора (DAC), вы можете выбрать столбец imageval, в котором хранится информация

Если ваша компания или ваш клиент не разрешает использовать сторонние инструменты, см. Этот пост.о том, как расшифровать зашифрованный объект:

http://www.mssqltips.com/sqlservertip/2964/encrypting-and-decrypting-sql-server-stored-procedures-views-and-userdefined-functions/

Однако самый простой способ - использовать сторонние инструменты

Один из них - ApexSQL Complete, БЕСПЛАТНАЯ надстройка SSMS и VS

В ApexSQL Complete зашифрованные объекты обрабатываются как любой другой объект SQL Server, за исключением того, что отображается их сценарий DDL, даже если он зашифрован с использованием Расшифровать зашифрованные объекты параметр

Сценарий зашифрованного объекта отображается в диалоговом окне сведений о встроенном объекте:

enter image description here

Отказ от ответственности: я работаюдля ApexSQL в качестве инженера службы поддержки

3 голосов
/ 12 марта 2012

Во-первых, держите сценарий вокруг созданного хранимого процесса.

Нет документированных способов получения текста процедуры после ее создания с помощью этой опции.Есть подсказки в CREATE PROCEDURE, если вы отчаянно хотите восстановить текст:

ENCRYPTION

Указывает, чтоSQL Server преобразует исходный текст оператора CREATE PROCEDURE в запутанный формат.Вывод обфускации не виден напрямую ни в одном из представлений каталога в SQL Server.Пользователи, которые не имеют доступа к системным таблицам или файлам базы данных, не могут получить запутанный текст.Однако текст будет доступен для привилегированных пользователей, которые могут либо получить доступ к системным таблицам через порт DAC, либо напрямую получить доступ к файлам базы данных.Кроме того, пользователи, которые могут присоединить отладчик к процессу сервера, могут извлечь расшифрованную процедуру из памяти во время выполнения.

То есть вам придется подключаться с использованием ЦАП и запрашивать недокументированные таблицы - в SSMS, безусловно, нет визуальной опции.

0 голосов
/ 05 августа 2014

Вы можете расшифровать с помощью инструмента SQL Compare.Вам нужно создать одну базу данных для сравнения сценария SQL.Возвращаемый результат скрипта sql расшифровывается.Ссылка soft: http://www.red -gate.com / products / sql-development / sql-сравнить /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...