在SQL Server 2005中有一种方法可以在用户拥有管理员权限时将默认架构设置为除dbo以外的任何其他架构吗?

时间:2010-07-20 17:26:53

标签: sql-server sql-server-2005

我正在使用带有Windows身份验证的SQL Server 2005。我的登录具有管理员权限。对于我的登录,我有一个用户映射到数据库,默认架构设置为“my_schema”。我的登录名不是数据库的所有者。当我登录时,尝试在“my_schema”中的表上执行简单的select语句而不指定模式名称,我得到一个无效的对象错误。当我以没有管理员权限的用户身份登录时,不会发生这种情况。我认为发生的事情是SQL Server正在将默认架构更改为“dbo”,因为我有管理员权限。有办法解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

系统管理员角色成员总是默认为dbo。这是一种设计行为,不能被推翻。

最好将用户移出Sysadmin角色并返回“普通”用户空间

答案 1 :(得分:-1)

您可以使用CREATE USER或ALTER USER命令使用“DEFAULT_SCHEMA”选项设置默认架构

CREATE USER exampleUser WITH DEFAULT_SCHEMA = exampleDB;
ALTER USER exampleUser WITH DEFAULT_SCHEMA = exampleDB;