Я говорю об аутентификации Windows.
У меня нет доступа к правам рекламы сервера, но dbadmin прислал мне снимок экрана, на котором мой пользователь не зарегистрирован на сервере. а также есть только одна группа Windows под названием admin - базы данных, в которой я на 100% уверен, что мой парень не может быть ее частью.
НО ... его логин есть у пользователей моей БД ...
Почему пользователь может появиться в БД, не имея входа на сервер?
P.S. в журналах он печатает: Ошибка входа для пользователя «xxxx». Причина: проверка доступа к серверу на основе токенов завершилась неудачно из-за ошибки инфраструктуры. Проверьте предыдущие ошибки
Если база данных была восстановлена или перенесена, все логины необходимо будет повторно связать. Это называется сиротским входом.
Если есть логин с таким же именем, вы можете использовать этот скрипт, чтобы исправить это.
USE [db_name]
GO
exec sp_change_users_login "auto_fix", "username";
Простое воссоздание имени входа после восстановления базы данных не приведет к повторной привязке его к пользователю. Вы должны изменить пользователя, который будет связан с данным логином.
Ты можешь использовать
ALTER USER [X]
WITH LOGIN = [Y];
Поскольку у вас может быть пользователь с именем A, связанный с логином B.
Помните: вход для каждого сервера, пользователь для каждой базы данных.
Также вполне возможно создавать пользователей без логинов.
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ sithlord БЕЗ ВХОДА
Эти пользователи без входа в систему могут быть полезны для олицетворения, когда доступ к данным может быть отфильтрован в зависимости от контекста пользователя (т. Е. Настраиваемой безопасности на уровне строк).
ИСПОЛНИТЬ КАК ПОЛЬЗОВАТЕЛЬ = 'sithlord'
ВЫБРАТЬ * ИЗ dbo.someView
ОБРАТИТЬСЯ