用户不使用SQL Server 2014中分配的默认架构创建表

用户不使用SQL Server 2014中分配的默认架构创建表,sql,sql-server,sql-server-2014,Sql,Sql Server,Sql Server 2014,在休了一年假回到SQL Server 2014之后,我遇到了一个问题 我已经创建了模式“dba”,并将其分配给数据库中附加到服务器上的登录名(例如Login1)的用户默认模式 所以Login1用户有一个默认的dba模式 我遇到的问题是,当我使用以下方法创建表时: Create table Test (Test int) 它将表创建为dbo.Test 但是,当我以say Login1的身份登录时,我希望它以dba.Test的身份创建它 如果我运行此代码: Execute as user = 'L

在休了一年假回到SQL Server 2014之后,我遇到了一个问题

我已经创建了模式“dba”,并将其分配给数据库中附加到服务器上的登录名(例如Login1)的用户默认模式

所以Login1用户有一个默认的dba模式

我遇到的问题是,当我使用以下方法创建表时:

Create table Test (Test int)
它将表创建为dbo.Test

但是,当我以say Login1的身份登录时,我希望它以dba.Test的身份创建它

如果我运行此代码:

Execute as user = 'Login1'
Create Table Test (Test int)
然后我得到了dba.Test的预期结果

我不知道有什么进一步的信息可以帮助你,但如果你让我知道,我会提供它


提前谢谢。

谢谢您在这方面的帮助。在尝试
选择Current_User
并意识到我的登录仍然使用dbo而不是Login1之后,肯定有什么不对

我读了下面的内容,意识到问题在于Login1被分配了sysadmin角色,并且映射到dbo。低于此级别的任何级别都会将您的用户映射到自身,因此我只需将他们的角色更改为serveradmin,然后就可以开始工作了:


这很不寻常。可能会删除Login1的dbo模式的DDL权限?能否在两种上下文中运行此语句?选择当前用户尝试在两种上下文中运行SELECT SCHEMA_NAME(),以查看当前活动的默认模式。谢谢大家,我运行了SELECT CURRENT_User和SELECT SCHEMA_NAME,并返回了dbo。我当然没想到。dbo属于用户sa。Login1是我的登录名,虽然它以前被分配给用户dbo,但我改变了它。