SQL Server ограничивает пользователя только выбранными хранимыми процедурами
sa
учетная запись была недавно заблокирована в общедоступной базе данных моей компании из-за многочисленных неудачных попыток входа в систему от неизвестного пользователя. У меня есть их IP-адрес в журналах, но это чертовски напугало меня.
Я изменил все свои пароли и нахожусь в процессе шифрования всех конфиденциальных данных.
Как мне ограничить SQL Server Authentication
пользователь может выполнять только определенные хранимые процедуры, но не делать ничего другого (не видеть ничего и даже не иметь возможности делать Select * From [SomeTable]
)?
Обновить:
В итоге я настроил белый список IP-адресов для брандмауэра, создал случайные 90-символьные пароли, настроил db_denydatawriter
а также db_denydatareader
и предоставление Execute
для конкретных хранимых процедур для конкретных пользователей.
2 ответа
Открывать SQL Server через Интернет небезопасно. Минимально ответственное решение поместит VPN или веб-сервер между ними.
Сказав это, вы можете удалить пользователя из всех групп (включая публичные), а затем предоставить только права на определенные хранимые процедуры. Без db_datareader
пользователь не может select * from SomeTable
,
Атаки против незащищенных sa
происходят все время, является частью арсенала каждого ботнета и комплекта для сканирования на наличие вредоносных программ.
Единственные ограничения, которыми вы располагаете, - это разрешения и гранты. Не существует механизма, ограничивающего то, что выполняется при входе в систему (нет механизма, подобного, скажем, тому, как туннель ssh может быть ограничен только определенными командами). Так что это действительно сводится к разрешениям и надежным паролям.