Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在SQLServer2005中,当用户具有管理员权限时,是否有方法将默认模式设置为dbo以外的任何模式?_Sql Server_Sql Server 2005 - Fatal编程技术网

Sql server 在SQLServer2005中,当用户具有管理员权限时,是否有方法将默认模式设置为dbo以外的任何模式?

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

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

您可以使用CREATE USER或ALTER USER命令使用“default_schema”选项设置默认模式

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

Sysadmin角色成员总是默认为dbo。这是一种故意的行为,不能被推翻


您最好将用户移出Sysadmin角色,返回“正常”用户空间

我已经像这样设置了默认模式。但当我拥有管理员权限时,它就不起作用了。很抱歉,我不相信您可以作为“sysadmin”组的成员更改默认模式。通常认为,将系统管理员用作普通用户是一种不好的做法,创建备用的普通用户可以避免您的问题。如果您发布代码或XML,请在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码”按钮(101 010),以很好地格式化和语法突出显示它!有关官方文件链接的更详细答案,请参见: