将架构从“dbo”更改为自定义名称
changing schema from `dbo` to custom name
我有一个很简单的问题:
如何将数据库架构从 dbo
更改为另一个架构?
我已经试过了:
alter schema [new_schema] transfer [old_schema].[object_name];
但我在使用查询时遇到有关权限的错误,并且在使用 GUI 时无法修改错误 属性。我自己创建了数据库,并获得了所有权限。我能想到的唯一问题是来自 GoDaddy,因为我正在使用 GoDaddy 的计划来托管我的数据库。我可以成功地将 table 从任何其他模式传输到 dbo
但我无法将任何 table 从 dbo
传输到任何其他模式...
错误:
'Cannot transfer the object 'Production', because it does not exist or you do not have permission.'
我们将不胜感激。
适用于:SQL 服务器(SQL Server 2008 到当前版本),Azure SQL 数据库.
要从另一个架构传输安全对象,当前用户必须对安全对象(非架构)具有 CONTROL
权限,对目标架构具有 ALTER
权限。
如果安全对象具有 EXECUTE AS OWNER
规范并且所有者设置为 SCHEMA OWNER
,则用户还必须对目标架构的所有者具有 IMPERSONATION
权限。
与正在转移的安全对象关联的所有权限在移动时都将被删除。
ALTER SCHEMA
只能用于在同一数据库中的模式之间移动安全对象。要更改或删除架构中的安全对象,请使用特定于该安全对象的 ALTER
或 DROP
语句。
如果单部分名称用于 securable_name,当前有效的名称解析规则将用于定位安全对象。
当安全对象移动到新架构时,与该安全对象关联的所有权限都将被删除。如果已明确设置安全对象的所有者,则所有者将保持不变。如果安全对象的所有者已设置为 SCHEMA OWNER
,则所有者将保持 SCHEMA OWNER
;但是,移动后 SCHEMA OWNER
将解析为新架构的所有者。新所有者的 principal_id 将为 NULL。
也许您应该编写要移动的 table 的脚本,然后在目标中重新创建它 dbo
?
我有一个很简单的问题:
如何将数据库架构从 dbo
更改为另一个架构?
我已经试过了:
alter schema [new_schema] transfer [old_schema].[object_name];
但我在使用查询时遇到有关权限的错误,并且在使用 GUI 时无法修改错误 属性。我自己创建了数据库,并获得了所有权限。我能想到的唯一问题是来自 GoDaddy,因为我正在使用 GoDaddy 的计划来托管我的数据库。我可以成功地将 table 从任何其他模式传输到 dbo
但我无法将任何 table 从 dbo
传输到任何其他模式...
错误:
'Cannot transfer the object 'Production', because it does not exist or you do not have permission.'
我们将不胜感激。
适用于:SQL 服务器(SQL Server 2008 到当前版本),Azure SQL 数据库.
要从另一个架构传输安全对象,当前用户必须对安全对象(非架构)具有 CONTROL
权限,对目标架构具有 ALTER
权限。
如果安全对象具有 EXECUTE AS OWNER
规范并且所有者设置为 SCHEMA OWNER
,则用户还必须对目标架构的所有者具有 IMPERSONATION
权限。
与正在转移的安全对象关联的所有权限在移动时都将被删除。
ALTER SCHEMA
只能用于在同一数据库中的模式之间移动安全对象。要更改或删除架构中的安全对象,请使用特定于该安全对象的 ALTER
或 DROP
语句。
如果单部分名称用于 securable_name,当前有效的名称解析规则将用于定位安全对象。
当安全对象移动到新架构时,与该安全对象关联的所有权限都将被删除。如果已明确设置安全对象的所有者,则所有者将保持不变。如果安全对象的所有者已设置为 SCHEMA OWNER
,则所有者将保持 SCHEMA OWNER
;但是,移动后 SCHEMA OWNER
将解析为新架构的所有者。新所有者的 principal_id 将为 NULL。
也许您应该编写要移动的 table 的脚本,然后在目标中重新创建它 dbo
?