当域帐户附加到数据库所有者时,为什么数据库图表不起作用?

jra*_*ara 5 sql-server authorization sql-server-2008-r2

我试图使用数据库图表是 SQL Server 并得到以下错误:

Database diagram support objects cannot be installed because this database does not have a valid owner. To continue, first use the Files page of the Database Properties dialog box or the ALTER AUTHORIZATION statement to set the database owner to a valid login, then add the database diagram support objects.
Run Code Online (Sandbox Code Playgroud)

我试图用这个命令来解决我的问题

ALTER AUTHORIZATION ON DATABASE::mydb TO "domain\username"
GO
Run Code Online (Sandbox Code Playgroud)

但它没有帮助。当我将域帐户更改为sa并运行时

ALTER AUTHORIZATION ON DATABASE::mydb TO sa
GO
Run Code Online (Sandbox Code Playgroud)

我摆脱了这个错误。问题是,为什么数据库所有者不接受域帐户(似乎只有saNT AUTHORITY\SYSTEM可以接受)?

Aar*_*and 6

您不需要是 sa​​ 或其他 sysadmin 帐户来创建数据库图表,但我认为您可能需要这样做才能最初安装数据库图表支持。

如果您以 sa 身份执行此操作,那么您应该能够让域\用户名创建图表。大多数在线资源都会告诉您,如果域\用户名是数据库所有者,它应该可以工作,但是当您将登录名设置为数据库所有者并且他们还不是数据库中的用户时,会略有不同:它们被映射到特殊的 dbo 帐户。我似乎能够在 SQL Server 2012 中执行此操作,但我使用的是 SQL 帐户而不是域帐户。所以我不知道这是否是导致您出现问题的原因,但我想我已经提供了一个有效的解决方法。