W poprzednim artykule „Tworzymy login z podanym SID-em – dodatek” opisałem cały proces sprawdzania tzw. SID-u i podałem skrypty umożliwiające założenie loginy z wybranym SID-em.

Ale czasem w trakcie przenoszenia/migracji na inne instancje trzeba utworzyć login wraz z hasłem, którego nie znamy.

Określenie hasła jako wartości zaszyfrowanej jest przydatne do tworzenia skryptów logowania z jednego serwera do wdrożenia na innym serwerze, gdy trzeba upewnić się, że hasła dla każdego logowania są dokładnie takie same na nowym serwerze. Hasło jest określone jako wartość binarna – ta wartość jest „haszowaną” wersją hasła.

Z pomocą przychodzi nam opcja założenia loginy SQLowego z tzw. Hashem hasła. Aby z tego skorzystać najpierw trzeba uzyskać hash hasła. Można to zrobić na dwa sposoby:

używając funkcję PWDENCRYPT, która zwróci hash z tekstu/hasła

SELECT PWDENCRYPT('Pa$$w0rd');

----------------------------------------
0x0200A948D708D667415A0605ADA7A4AC888D405D9D3AC63
3370C1ACD1D00E10358C5189F5E65A4B4D3946F66221644D78
49DD5F3F689DB25FEA20154F3384A40CEFEE7814F36

użyć funkcji LOGINPROPERTY, aby uzyskać dostęp do zapisanego skrótu hasła:

SELECT LOGINPROPERTY('sa','PASSWORDHASH');

Mając już komplet danych poniższym skryptem można założyć login z wybranym SIDem i hashem hasła

CREATE LOGIN Testaccount 
WITH PASSWORD = 
0x0200A948D708D667415A0605ADA7A4AC888D405D9D3AC63
3370C1ACD1D00E10358C5189F5E65A4B4D3946F66221644D78
49DD5F3F689DB25FEA20154F3384A40CEFEE7814F36 HASHED
, SID = 0x59B662112A43D242565BFE2BF80D9BC21
, DEFAULT_DATABASE = Test
, DEFAULT_LANGUAGE = english;

Dariusz Brejnak

Od prawie trzydziestu lat jest pasjonatem informatyki, a zwłaszcza dziedzin dotyczących baz danych, hurtowni danych oraz ogólnie rozumianej tematyki BI. Jego druga pasja to fotografia http://dariuszbrejnak.pl