我有一个问题,在我的SQL Server数据库中,我有master,msdb,tempdb,bets数据库。当我运行我的应用程序时,应用程序使用bets db,而在bets db中,默认对象是dbo。
问题是,如何将默认的dbo(内部投注)更改为新的价值投注?
现在的结构
需要这样的东西
更新:我忘了说,我在docker容器内使用它,而主机是Redhat
答案 0 :(得分:1)
您的意思是更改SQL Server的默认架构吗?您可以尝试Alter Schema
如何建立用户的默认架构?
您可以在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
未指定三部分名称时,将始终使用默认架构命名。
我可以看到如何将模式的所有权更改为某些用户,但是您不能使同一用户成为多个模式的所有者吗?
您肯定可以在数据库中拥有一个用户或一个角色来拥有所有模式,但是某些东西应该适合您的环境(安全性)。
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
默认是哪个?
拥有架构的用户与用户的默认架构不同。一个用户可以拥有多个架构,但是一个用户只能拥有一个默认架构