2010-07-20 25 views
2

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

回答

2

系统管理员角色的成员始终得到默认为DBO。这是一种设计行为,不能被推翻。

您最好将用户移出系统管理员角色并回到“正常”用户空间

+0

有关官方文档链接的更详细的答案可以在这里找到:http://stackoverflow.com/a/3806301/806549 – 2013-06-05 11:08:09

-1

您可以使用带有“DEFAULT_SCHEMA”选项中设置的默认模式无论是CREATE USER或ALTER USER命令

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

我已经设置了像这样的默认模式。但是当我拥有管理员权限时它不起作用。 – YWE 2010-07-20 17:44:28

+1

对不起,我不相信你可以更改默认架构作为“sysadmin”组的成员。使用系统管理员作为一般用户通常被认为是不好的做法,并且创建一个替代的一般用户绕过你的问题。 – b8b8j 2010-07-20 17:57:41

+0

如果您发布代码或XML,**请**在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码”按钮(101 010)以精确地格式化和语法突出显示它! – 2010-07-20 19:17:43