Я понимаю, что это 5-летнее сообщение, но на него никогда не отвечали правильно, и была опубликована действительно плохая информация.
Сначала давайте посмотрим, что Books Online говорит о роли "DBO" (priv). Акцент мой.
Члены предопределенной роли базы данных db_owner могут выполнять все
операции по настройке и обслуживанию базы данных .
Подводя итог, это означает, что человек с привилегиями "DBO" может делать практически все, что он хочет, с любой базой данных, где у него есть эта привилегия. С 2005 года это также означает, что они могут удалить базу данных.
Также обратите внимание, что в нем не говорится о возможности проконтролировать сервер. Насколько я помню, для выполнения xp_CmdShell вам понадобились привилегии "SA" или (совсем недавно) "Control Server". DBO не поставляется с priv, поэтому он не может запустить xp_CmdShell или множество других вещей, которые начинаются с "xp_" или даже с "sp _".
Переключение передач и, как кажется, ФП уже немного осведомлен, привилегии DBO считаются "привилегированными привилегиями". Я бы посоветовал вам никогда не предоставлять привилегию DBO приложению (или другому внешнему интерфейсу), и я предоставляю его только людям, которые должны быть ответственными администраторами базы данных. Этих людей нужно выбирать так же мудро, как и тех, кого вы бы выбрали в качестве администраторов баз данных.
Чтобы ответить на другие вопросы, касающиеся CRUD ... в большинстве случаев, когда CRUD выполняется ORM, наиболее необходимыми привилегированными привилегиями являются db_DataReader и db_DataWriter. Если честно, я предпочитаю даже не позволять логинам иметь эти привилегии. Я знаю, что каждый разработчик внешнего интерфейса будет кричать на меня, но правда в том, что даже CRUD должен выполняться хранимой процедурой, чтобы не дать злоумышленнику получить доступ к db_DataWriter, который позволяет кому-либо удалять из таблиц. Насколько я понимаю, приложения (и другие внешние интерфейсы) должны иметь только неизмененные привилегии PUBLIC и привилегии для выполнения определенных хранимых процедур ... точка.