如何在 SQL Server 2012 中转移 dbo 架构的所有权

Pre*_*gha 17 schema security sql-server-2012

我不小心给了用户 db_owner 架构的所有权(使用 UI 中的复选框,如下所示),现在我不能:

  1. 将所有权转让给其他用户
  2. 从数据库中删除用户(尽管我可以删除 SQL Server 中的登录名)

我试过数据库主体在数据库中拥有一个架构,并且无法删除。

ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo
Run Code Online (Sandbox Code Playgroud)

虽然它成功完成,但用户仍然拥有所有权,并且它是灰色的,所以我似乎也无法在 UI 中执行此操作。

在此处输入图片说明

找到了解决办法:

除了Arron 的回答之外,我意识到我会在错误的数据库(facepalm!)中运行上述命令。一旦数据库得到纠正,上面的 SQL 和下面的答案都有效。

Aar*_*and 24

稍微不同的方法是将模式返回给原始所有者/模式,而不是 dbo:

ALTER AUTHORIZATION ON SCHEMA::db_owner TO db_owner;
Run Code Online (Sandbox Code Playgroud)