Varbinary - шестнадцатеричное представление

Sinix
Дата: 18.09.2006 07:43:17
Как получить сабж?

Собственно проблема:
SQL 2005 Express Edition.

Переносим БД.
Надо сохранить пароли существующих пользователей.
Есть системный view sys.sql_logins, в котором хранится
хэш пароля. Причём хранится он в varbinary(512).
Для восстановления пользователя динамически формируем строку

CREATE LOGIN loginName WITH PASSWORD = passHash HASHED

и суём её в EXEC.

Проблема в том, как получить шестнадцатеричное представление нашего хэша
чтобы запихнуть его в passHash.

В BOL что-то ничего не нашлось...
А писать ради этого CLR-функцию... как-то не тянет...
tpg
Дата: 18.09.2006 07:49:27
Sinix
Дата: 18.09.2006 07:57:34
Сеньксь.
Приятно поражён оперативностью ответа).
Увы... там предлагают скриптик для конвертации varbinary в hex.
Причём преобразование идёт побайтово.
Для более-менее серьёзной БД долго будет.
Будем изобретать велосипед на CLR'е ).
----------
Дата: 18.09.2006 09:22:10
Этож сколько у вас логинов, что нужна оптимизация ?
GreenSunrise
Дата: 18.09.2006 10:51:20
Это надо?
declare @s nvarchar(4000)
select @s = master.dbo.fn_varbintohexstr(0x1234)
print @s
Sinix
Дата: 19.09.2006 06:17:27
GreenSunrise
Это надо?
declare @s nvarchar(4000)
select @s = master.dbo.fn_varbintohexstr(0x1234)
print @s


Угу)

Я уже изобрёл своё )))
А где можно посмотреть список недокументированных для 2005-го?