SQL Server:dbo vs db_ownerangular色成员?

我正在向用户分配一个新的数据库。 用户作为默认的dbo用户与将其作为db_ownerangular色成员进行login相比有什么不同?

每个数据库应该有一个dbo用户,默认情况下分配给db_owner数据库angular色。 还有一个dbo模式,这部分是来自SQL Server 2000和更早版本的保留,用户和模式是一个相同的模式。 如果在用户的缺省模式中没有finddbo模式中的对象(假设对象名称没有使用模式名称限定),查询也会稍微特殊。

您只能将单个login名映射到数据库中的dbo用户(与任何数据库用户的情况一样),但是可以根据需要为db_ownerangular色分配尽可能多的用户,从而实质上完全控制数据库。

如果为数据库用户设置默认模式,那么在安全性方面不会有任何影响。 它只是控制默认的哪个模式将被用来创build和引用对象时,没有提供对象名称的特定模式名称。 在SQL Server 2000及更早版本中,由于没有用户和模式的分离,用户的默认模式始终是自己的,除非明确指定,例如“CREATE TABLE dbo.test_table …”和“CREATE TABLE test_table …” 。 (请注意,dbo架构仍然用于在用户的默认架构中找不到的对象。)

默认的dbo用户不能查看任何数据库对象.db_owner可以在数据库上执行所有configuration和维护活动