Реферат по предмету "Программирование"


Использование COM-объектов в хранимых процедурах SQL Server

Использование COM-объектов в хранимых процедурах SQL
Server

Рассмотрим, например, ситуацию, когда хранимая
процедура по входному параметру паролю брала бы его MD5 значение и заносила
полученное значение в таблицу.

Такая ситуация может возникнуть при регистрации
пользователей, когда в таблице находятся не реальные пароли, а их MD5 значения.

Возникает вопрос - можно ли функционал по взятию MD5
значений паролей перенести в хранимую процедуру, если существует COM-объект,
который генерит хэш-значения MD5 ?

Конечно, эту процедуру можно реализовать в приложении
через простой вызов COM-объекта, но мы рассмотрим как это можно сделать в
Transact-SQL.

В качестве COM-объекта возьмем ActiveX-компонент
CryptLib, который можно взять на данном сайте
http://www.activex.net.ru/activex/more.shtml#cryptlib и зарегистрировать в
реестре стандартно через regsvr32.

Далее воспользуемся системными процедурами SQL Server,
которые позволяют работать с COM-объектами:

  sp_OACreate

  sp_OAMethod

  sp_OADestroy

 
sp_OAGetErrorInfo

Для запуска этих системных процедур пользователь, от
имени которого будет запускаться наша процедура, должен входить в роль
sysadmin.

Текст процедуры InsertMD5Value:





CREATE
PROCEDURE dbo.InsertMD5Value


 @Login Varchar(50), @Password Varchar(50)


AS


DECLARE
@object int


DECLARE
@hr Int


DECLARE
@md5_hash varchar(255)


DECLARE
@src varchar(255), @desc varchar(255)


SET
NOCOUNT ON


EXEC
@hr = sp_OACreate 'CryptLib.MD5', @object OUT


IF @hr 0


   
-- Сообщение об ошибке


   
BEGIN


   


   
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT


    SELECT hr=convert(varbinary(4),@hr),
Source=@src, Description=@desc


    GOTO END_FINAL


    END


ELSE


    BEGIN


    EXEC @hr = sp_OAMethod @object, 'Crypt',
@md5_hash OUT, @Password


    IF @hr 0


    GOTO CLEANUP


    ELSE


    PRINT @md5_hash


    --
для примера просто печатаем MD5 значение.


    -- здесь можно делать вставку полученного
MD5 значения в таблицу,


    -- предварительно сделав проверку на
существование в таблице значения


    -- из переданного параметра @Login


    -- INSERT INTO UsersReg (Login, Passwd)
VALUES (@Login, @Password)


    END


CLEANUP:


   IF @hr 0


   BEGIN


   EXEC sp_OAGetErrorInfo @object, @src OUT,
@desc OUT


   SELECT hr=convert(varbinary(4),@hr),
Source=@src, Description=@desc


   END


   BEGIN


   EXEC @hr = sp_OADestroy @object


   IF @hr 0


   BEGIN


   EXEC sp_OAGetErrorInfo @object, @src OUT,
@desc OUT


   SELECT hr=convert(varbinary(4),@hr),
Source=@src, Description=@desc


   END


   END


END_FINAL:


RETURN







Для запуска этой хранимой процедуры достаточно просто
выполнить

EXEC
dbo.InsertMD5Value 'user1', 'test'

Христофоров Юрий
Список литературы

Для подготовки данной работы были использованы
материалы с сайта http://www.activex.net.ru/


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Аннотация научно-образовательного материала (ном)
Реферат «Гликозидазы. Амилолитические, целлюлолитические, пектинолитические ферменты»
Реферат Експертні системи
Реферат Новелла Мериме "Души чистилища"
Реферат Дослідження активних фільтрів
Реферат Hamlet Hamlet Defeated By His Own Flaws
Реферат Contrasting Apollo
Реферат Информационно-измерительная система
Реферат Midsummer Nights Dream And Love Essay Research
Реферат Бухгалтерский учет и анализ расходов на научно-исследовательские открытия
Реферат Налоги как интсрумент макроэкономического регулирования
Реферат Снижение ценности материнства и отцовства как следствие разрушения традиционного уклада семьи
Реферат Предмет философии. Религиозная, научная и философская картины мира
Реферат Медицинские термины в Слове о полку Игореве
Реферат Форсована індустріалізація в Україні мета планування методи проведення джерела наслідки