SQL Server更改数据库内部的dbo
我有一个问题,在我的SQL Server数据库中,我有master、msdb、tempdb和bets数据库。当我运行我的应用程序时,应用程序使用bets db,而bets db内部的默认对象是dbo 问题是,如何将默认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
- 打赌
- 数据库访问管理
- 数据写入程序
- 等
- 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