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

SQL Server: член роли dbo vs db_owner?

Я назначаю пользователя новой базе данных. В чем разница между тем, чтобы пользователь был пользователем dbo по умолчанию, по сравнению с назначением входа в систему в качестве члена роли db_owner?

В каждой базе данных должен быть пользователь dbo, которому по умолчанию назначена роль базы данных db_owner. Также существует схема dbo, которая частично является пережитком SQL Server 2000 и более ранних версий, где пользователи и схемы были одним и тем же. Он также немного особенный в том, что запросы будут искать объекты в схеме dbo, если они не найдены в схеме пользователя по умолчанию (при условии, что имя объекта не было уточнено именем схемы).

Вы можете сопоставить только один логин с пользователем dbo в базе данных (как и в случае с любым пользователем базы данных), но вы можете назначить столько пользователей, сколько захотите, роли db_owner, предоставив им практически полный контроль над базой данных.

Если вы установите схему по умолчанию для пользователя базы данных, это не повлияет на безопасность. Он просто контролирует, какая схема по умолчанию будет использоваться для создания и ссылки на объекты, когда конкретное имя схемы не указано с именем объекта. В SQL Server 2000 и ранее, поскольку не было разделения пользователей и схем, пользовательская схема по умолчанию всегда была сама собой, если явно не указано иное, например «СОЗДАТЬ ТАБЛИЦУ dbo.test_table ...» против «СОЗДАТЬ ТАБЛИЦУ test_table ...». (Обратите внимание, что схема dbo все еще использовалась для объектов, не найденных в схеме пользователя по умолчанию.)

Пользователь dbo по умолчанию не может просматривать какие-либо объекты базы данных. Db_owner может выполнять все действия по настройке и обслуживанию базы данных.