Вчера я задал этот вопрос относительно изменения базы данных нескольких баз данных, которые у меня есть. Изменение имеет смысл, но я хочу быть ясным.
Есть ли веская причина или обстоятельство, почему я не должен устанавливать dbo базы данных на [sa]?
Ответы:
Создание SA владельцем базы данных фактически упрощает и / или решает ряд задач, но может иметь некоторые последствия для безопасности.
В частности, помните, что если SA является владельцем базы данных, то
dbo = 'SA'
. Это означает, что, среди прочего, любые процедуры в схеме [dbo] (которая по умолчанию), в которой есть «EXECUTE As Owner», фактически выполняются как SA. Это не совсем так плохо , как это звучит, потому что , если вы не отметили базу данных как заслуживающее доверие, SQL Server не позволит сеанс или задачи из базы данных с олицетворенным основным уровнем сервера , как это.Что вызывает следующий момент: никогда не отметить такие базы данных , как заслуживающий доверия, если вы не на самом деле , на самом деле уверен , что это безопасно. Потому что любой, у кого есть возможность создавать процедуры в схеме [dbo], может выполнять как SA на всем сервере, если он этого хочет.
Другая проблема может возникнуть, потому что многие продукты и приложения, которые имеют свою собственную базу данных SQL Server, часто указывают, что логин их приложения должен быть DBO базы данных. Очевидно, вы могли бы решить эту проблему, установив для своего приложения логин 'SA'. Надеюсь, также очевидно, что вы никогда не должны этого делать, если только экземпляр SQL Server не используется ни для чего другого (даже в этом случае я бы рекомендовал против этого).
источник