Podczas przywracania baz danych MS SQL może się przydarzyć, że trafisz na sytuację gdy w bazie danych będzie tzw. „orphan user”, czyli taki pusty login z poprawną nazwą ale nie powiązany z użytkownikiem. Jednak jeśli przyjrzymy się bliżej to znajdziemy 2 takie same loginy ale z różnymi numerami SID. Tak jak na screenie poniżej.
Aby wylistować wszystkich użytkowników, z którymi jest problem należy na użytkowniku z uprawnieniami „sysadmin” wywołać to polecenie.
1 |
EXEC sp_change_users_login 'Report' |
Zakładając, że mamy problem z użytkownikiem reports, należy upewnić się, że mamy stworzonego użytkownika o takim loginie a następnie wywołujemy procedurę.
1 |
EXEC sp_change_users_login 'Auto_Fix', 'reports' |
Wynikiem tej komendy będzie:
1 2 3 |
The row for user 'reports' will be fixed by updating its login link to a login already in existence. The number of orphaned users fixed by updating users was 1. The number of orphaned users fixed by adding new logins and then updating users was 0. |
W przypadku gdy nie ma takiego użytkownika, należy go utworzyć. Można to zrobić komendą:
1 |
EXEC sp_change_users_login 'Auto_Fix', 'user', 'login', 'password' |