nic*_*kel 7 authentication sql-server sql-server-2005 sql-server-2008
我正在将用户分配给新数据库。与作为 db_owner 角色成员分配登录相比,作为默认 dbo 用户的用户有什么区别?
每个数据库都应该有一个 dbo 用户,默认情况下分配给 db_owner 数据库角色。还有一个 dbo 架构,它部分是 SQL Server 2000 及更早版本的保留,其中用户和架构是相同的。还有一点特别之处在于,如果在用户的默认架构中找不到对象,则查询将在 dbo 架构中查找对象(假设对象名称没有用架构名称限定)。
您只能将单个登录映射到数据库中的 dbo 用户(与任何数据库用户的情况一样),但您可以将任意数量的用户分配给 db_owner 角色,从而使他们基本上可以完全控制数据库。
如果为数据库用户设置默认架构,则不会对安全性产生任何影响。当对象名称未提供特定模式名称时,它只是控制默认情况下将使用哪个模式来创建和引用对象。在 SQL Server 2000 及更早版本中,由于没有分离用户和架构,用户的默认架构始终是其自身,除非另外明确指定,例如“CREATE TABLE dbo.test_table...”与“CREATE TABLE test_table...” . (请注意,dbo 架构仍用于在用户的默认架构中找不到的对象。)