Проблема с разрешениями на SQL Server 2008 - PullRequest
1 голос
/ 12 октября 2011

Я только что переместил базу данных с нашего тестового сервера на работающий сервер, создав пустую базу данных и восстановив на ней резервную копию.

Несмотря на правильное добавление логина, я получаю следующую ошибку:

Основной сервер "myUser" не может получить доступ к базе данных. myDatabase в текущем контексте безопасности.

Я безуспешно пытался нажать F7 в Object Explorer Details. Я могу получить ошибку, просто запустив:

> USE myDatabase 
> GO
> 
> EXECUTE AS LOGIN = 'myUser'

Запуск следующего скрипта (из связанного вопроса) показывает пользователя правильно

select  princ.type_desc
,       princ.name
,       perm.permission_name
,       perm.state_desc
,       object_name(perm.major_id)
from    sys.database_permissions perm
left join
        sys.database_principals princ
on      princ.principal_id  = perm.grantee_principal_id 

SQL_USER myUser CONNECT GRANT

Есть предложения ???

1 Ответ

2 голосов
/ 12 октября 2011

Попробуйте использовать sp_change_users_login с действием "Auto_Fix" для повторной синхронизации имен входа между сервером и базой данных.

exec sp_change_users_login @Action = 'Auto_Fix', @UserNamePattern = 'myUser'
...