我尝试使用SQL Server 2008创建数据库diagramm,但发生错误:
无法安装数据库关系图支持对象,因为此数据库没有有效的所有者 . 要继续,首先使用“数据库属性”对话框的“文件”页面或ALTER AUTHORIZATION语句将数据库所有者设置为有效登录,然后添加数据库关系图支持对象 .
然后我尝试了以下内容:
EXEC sp_dbcmptlevel 'Ariha', '90';
GO
ALTER AUTHORIZATION ON DATABASE::Ariha TO [WIN-NDKPHUPPNFL\Administrator]
GO
USE Ariha
GO
EXECUTE AS USER = N'dbo' REVERT
GO
下一个erorr弹出:
消息15404,级别16,状态11,行1无法获取有关Windows NT组/用户'WIN-NDKPHUPPNFL \ Administrator'的信息,错误代码0x534 .
问题是PC的名称已更改为“DevPC”我也在更新脚本中更改了此项,但仍然是相同的错误15404 .
我该怎么做才能解决这个恼人的错误?
13 回答
您应该考虑SQL身份验证帐户的数据库所有权;那么您不必担心帐户来来往往,数据库或实例移动到不同的服务器,以及您的下一个PC名称更改 . 我有几个系统供我们使用:
或者,如果要将所有者更改为该本地管理员帐户,则应该是:
因为将计算机重命名为
DevPC
已消除了以前名为WIN-ND...\Administrator
的本地帐户,这也使数据库的当前所有者无效 .如果
SELECT @@SERVERNAME;
不准确(应该说DevPC
),那么为了确保您的服务器重命名已在SQL Server中保留,您可能还想发出以下命令:在SQL Server Management Studio中执行以下操作:
右键单击数据库,选择属性
转到选项页面
在右侧标记为"Compatibility Level"的下拉菜单中选择"SQL Server 2005(90)" 3-1 . 如果收到可比性错误,请选择"SQL Server 2008" .
转到“文件”页面
在所有者文本框中输入"sa" . 5-1或点击省略号(...)并选择合法的所有者 .
点击确定
完成此操作后,您现在可以访问数据库图表 .
在所有者文本框中输入“SA”而不是“sa” . 这对我有用 .
我有同样的问题 .
我想查看我的图表,这是我在工作当天在家里创建的 . 但我不能因为这个消息 .
我发现数据库的所有者是我的计算机的用户 - 如预期的那样 . 但由于计算机位于公司_703140的网络中,因此数据库无法解析所有者 .
所以我做的是 change the owner to a local user ,它的确有效!
希望这有助于某人 .
您可以通过右键单击数据库,属性,文件,所有者来更改用户
有用 .
这为我修好了 . 它设置在数据库属性窗口的“文件”部分下找到的所有者,并且由管理工作室编写脚本 .
根据sp_changedbowner documentation,现在已弃用 .
基于以色列的答案 . 亚伦的答案是这种不贬低的变化 .
选择数据库 - 右键单击 - 选择属性
在页面左侧选择FILE
在OWNER框中,选择其中包含三个点(...)的按钮
现在选择用户'sa并单击OK
我刚刚经历过这个 . 我已经阅读了这个页面上的建议,以及SQL权威机构的建议(这是同一件事)并且没有上述工作 .
最后,我删除了帐户并重新创建(使用相同的用户名/密码) . 就这样,所有问题都消失了 .
可悲的是,这意味着我不知道出了什么问题所以我不能分享任何其他的东西 .
1.右键单击数据库,然后选择属性 . 3.如果您正在使用Microsoft sql 2008,请选择兼容级别中的选项选择sql 2008 [100] .
4.然后选择文件并在所有者的文本框中写入(sa)
100%适合我 .
解决此问题的更简单方法是右键单击数据库的名称,选择“新建查询”,键入“exec sp_changedbowner'sa”并执行查询 . 然后你会好起来的 .
你必须以管理员身份输入右键单击microsofft sql server management studio并以管理员身份运行
真正的问题是默认所有者(dbo)根本没有映射到它的登录 . 当我尝试将sa登录映射到数据库所有者时,我收到另一个错误,指出“用户,组或角色'dbo'已存在......“ . 但是,如果您尝试此代码,它将实际工作:
右键单击数据库,然后选择属性 . 如果您正在使用Microsoft sql 2008,请选择兼容级别中的选项选择sql 2005 [90]而不是2008 . 然后选择文件并在所有者的文本框中写入(sa) . 它可能会工作