воскресенье, 5 февраля 2017 г.

MS SQL. Login and Database User. Orphaned

При работе с MS SQL столкнулся с фишкой, что есть Login User и есть Database User.
Жто не глюк - это by design. В итоге после восстановления базы у нас пользователи в базе не имеют прав на соединение с базой. Называется это Orphaned users.
В 2008 сервере есть скрипт для решения этого но у меня он не сработал.
Я шёл таким путем:
EXEC sp_change_users_login 'Report'

myUSER  0xA55348B67933F247BA2664508CAF4A3E

Это список orpaned users, то есть тех, кто есть в базе но не имеет прав на логин в базу.

Получим список Logins (тех кто может логиниться в базу):
SELECT sid 
FROM sys.sql_logins 
WHERE type = 'S';

Здесь будет список SID, среди которых нет нашего 0xA55348B67933F247BA2664508CAF4A3E
Исправляем:
CREATE LOGIN    
WITH PASSWORD = '',  
SID = ; 
CREATE LOGIN myUSER   
WITH PASSWORD = 'myPassword',  
SID = 0xA55348B67933F247BA2664508CAF4A3E; 

готово
Если что вот здесь лучше

Комментариев нет: