Назад | Перейти на главную страницу

Эффекты безопасности предоставления гостевого доступа к базе данных

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

EXEC sp_grantdbaccess N'guest'

Как кто-нибудь может воспользоваться гостевым пользователем в строке подключения? Кажется, это не связано с входом в систему. В пабах я вижу, что гость - это представитель публики. Гость, похоже, не удаляется.

Это какая-то учетная запись анонимного доступа или что? Если это проблема безопасности, что мне делать, чтобы ее исправить?

Если для входа в SQL Server нет другого выхода в базу данных, гостевой пользователь разрешает этот доступ. Сначала вы должны иметь действующий логин в SQL Server. Какое бы разрешение ни было предоставлено гостю, этот логин будет иметь право делать это. Есть пара вещей, на которые стоит обратить внимание:

  • Какие разрешения есть у гостя?
  • Какие разрешения есть у публичной роли (все пользователи, включая гостя, являются участниками этой роли)?
  • Участником каких ролей является гость и какие разрешения у этих ролей?

Общий совет - не включать гостевой пользователь. Если логин должен иметь доступ к базе данных, лучше предоставить явный доступ. Это упрощает аудит. С учетом сказанного, вы заметите, что в системных базах данных master и msdb включен гостевой пользователь, если вы посмотрите. Это требование.

Первое, что приходит на ум - это не только удаление данных или другие вредоносные действия, но и доступ к вашим данным неавторизованным пользователям. Для некоторых злоумышленников иногда важно не то, что вы можете уничтожить, а то, что вы можете скопировать в их систему (системы). Если они могут реплицировать любые конфиденциальные данные, которые у вас есть, то не имеет значения, попытаются ли они вернуться - в конце концов, у них есть собственная копия! В этом случае лошадь в значительной степени выскочит за дверь сарая, и запечатывание бреши после факта только остановит другие попытки, но не репликацию уже полученных данных.