Полагаю, это не так просто, как:
update sys.sysusers
set hasdbaccess = 0
where user = 'guest'
или что-то подобное? Нет, жизнь никогда не бывает такой легкой: -)
Обычно вы используете deny
или revoke
для удаления таких разрешений, но помните, что гость не считается обычным пользователем. По какой-то причине GUEST
не подлежит REVOKE CONNECT
в базах данных master или tempdb.
См. здесь для того небольшого изложения факта, но не так много объяснений, почему.
При дальнейшем исследовании некоторые люди полагают, что это требуется в главной БД, потому что именно там хранится информация о пользователе (логине). Таким образом, во время входа в систему каждый обращается к этой БД с учетной записью гостя, поскольку их «реальная» учетная запись и права доступа еще не известны.
Поскольку гостевая учетная запись используется для всех пользователей без подтвержденных учетных данных (и это все, вплоть до момента, когда их вход в систему будет успешным), это имеет смысл для меня.