У меня есть приложение для развертывания в производстве, которое использует безопасность системы чести. То есть все пользователи подключаются к БД с использованием учетных данных SQL user / passwd, а приложение самостоятельно управляет разрешениями. Последняя часть не беспокоит меня так сильно, как тот факт, что объект подключения содержит встроенные учетные данные и может свободно копироваться. Я пытаюсь найти способ ограничить количество подключений для более ограниченного набора клиентов. Конечно, я могу создавать правила брандмауэра для ограничения по IP. Есть ли какой-либо способ «преквалифицировать» логины SQL по учетной записи компьютера или членству в домене?
sql-server
sql-server-2012
security
Джефф Сакстедер
источник
источник
Ответы:
Вы можете достичь этого с помощью триггера входа в систему . В вашем триггере входа в систему вы можете иметь логику для выполнения необходимых проверок (например, имя машины). К сожалению, я не верю, что есть способ получить членство в домене пользователя, если вы используете проверку подлинности SQL Server.
Вы можете посмотреть на использование функции EVENTDATA, чтобы увидеть, можете ли вы извлечь другую информацию, чтобы определить, следует ли разрешить соединение. Если вы не хотите, чтобы этот конкретный вход был успешным, вы можете просто выполнить условное тестирование и выполнить команду a
ROLLBACK
.источник
Как отметил Томас, это можно сделать с помощью LOGON Trigger. Ниже приведен скрипт, который поможет вам
источник
Host_Name()
это не безопасно и может быть легко подделать, просто никому. Это особенно легко сделать из Excel. Вы@IPAddress
были бы намного более надежным для этой цели.