SQL Server更改数据库内部的dbo

SQL Server更改数据库内部的dbo,sql,sql-server,Sql,Sql Server,我有一个问题,在我的SQL Server数据库中,我有master、msdb、tempdb和bets数据库。当我运行我的应用程序时,应用程序使用bets db,而bets db内部的默认对象是dbo 问题是,如何将默认dbo(内部赌注)更改为新值赌注 现在的结构 打赌 数据库访问管理 数据写入程序 等 dbo(默认值) 打赌 应该是这样的 打赌 数据库访问管理 数据写入程序 等 dbo 赌注(默认) 更新:我忘了说,我在docker容器中使用它,主机是Redhat您的意思是更改S

我有一个问题,在我的SQL Server数据库中,我有master、msdb、tempdb和bets数据库。当我运行我的应用程序时,应用程序使用bets db,而bets db内部的默认对象是dbo

问题是,如何将默认dbo(内部赌注)更改为新值赌注

现在的结构

  • 打赌
    • 数据库访问管理
    • 数据写入程序
    • dbo(默认值)
    • 打赌
应该是这样的

  • 打赌
    • 数据库访问管理
    • 数据写入程序
    • dbo
    • 赌注(默认)

更新:我忘了说,我在docker容器中使用它,主机是Redhat

您的意思是更改SQL Server的默认架构吗?你可以试试

如何建立用户的默认模式

您可以在SSMS GUI和TSQL中设置默认模式

USE [dbname]
GO
ALTER USER [you] WITH DEFAULT_SCHEMA=guest
GO
EXECUTE AS LOGIN = 'YOU'
GO
create table leks(c1 int)
-- Now your table is guest.leks
未指定三部分名称时,将始终使用默认架构命名

我可以看到如何将一个模式的所有权更改为某个用户,但是您不能让同一个用户成为多个模式的所有者吗

您肯定可以让数据库中的一个用户或角色拥有所有模式,但应该拥有适合您的环境(安全性)的模式

哪一个是默认值


拥有架构的用户与用户的默认架构不同。一个用户可以拥有多个模式,但一个用户只能有一个默认模式

您的意思是更改默认模式吗?默认模式是用户设置,而不是数据库设置。您可以通过使用“也请参见此处:我不需要创建其他用户”来更改用户的默认模式。我需要使用默认用户,只需将数据的位置从dbo更改为bets,因为那里有两种不同类型的数据。
ALTER user
不创建用户,而是对其进行更改。如果你正在创建一个新用户,你会使用
CREATE user
(毫不奇怪)。@Artsom这似乎是一个无关的问题。但是在该页面上按Ctrl+F组合键“timeout”。@EzLo,当我试图更改“sa”用户的默认架构时,出现了一个错误,无法更改用户“sa”,因为它不存在或您没有权限<代码>使用默认模式更改用户sa=guest
USE dbname
GO
ALTER AUTHORIZATION ON SCHEMA::[db_backupoperator] TO you
GO
USE dbname
GO
ALTER AUTHORIZATION ON SCHEMA::[db_accessadmin] TO you
GO

-- I have changed for system schemas , you can definitely do this for all user schemas as well