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