我尝试使用SQL Server 2008创建数据库,但发生错误:
数据库图表支持对象 无法安装因为这个 数据库没有有效的所有者。 要继续,请先使用“文件”页面 数据库属性对话框 或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弹出:
Msg 15404,Level 16,State 11,Line 1 无法获取有关的信息 Windows NT组/用户 'WIN-NDKPHUPPNFL \ Administrator',错误 代码0x534。
问题是PC的名称已更改为“DevPC”我在更新脚本中也更改了此项,但仍然是相同的错误15404.
我该怎么做才能解决这个恼人的错误?
答案 0 :(得分:200)
在SQL Server Management Studio中执行以下操作:
执行此操作后,您现在可以访问数据库图表。
答案 1 :(得分:176)
您应该考虑SQL身份验证帐户的数据库所有权;那么您不必担心帐户来来往往,数据库或实例移动到不同的服务器,以及您的下一个PC名称更改。我有几个系统供我们使用:
ALTER AUTHORIZATION ON DATABASE::Ariha TO [sa];
或者,如果您要将所有者更改为该本地管理员帐户,则应该是:
ALTER AUTHORIZATION ON DATABASE::Ariha TO [DevPC\Administrator];
因为将计算机重命名为DevPC
已取消了以前名为WIN-ND...\Administrator
的本地帐户,这也使数据库的当前所有者无效。
如果SELECT @@SERVERNAME;
不准确(应该说DevPC
),那么为了确保您的服务器重命名已在SQL Server中保留,您可能还需要发出以下命令:
EXEC sp_dropserver @server = N'old server name';
GO
EXEC sp_addserver @server = N'DevPC', @local = N'local';
GO
答案 2 :(得分:5)
在所有者文本框中输入“SA”而不是“sa”。这对我有用。
答案 3 :(得分:5)
我遇到了同样的问题 我想查看我的图表,这是我在工作当天在家里创建的。但由于这个消息,我无法做到这一点 我发现数据库的所有者是我的计算机的用户 - 如预期的那样。但由于计算机位于公司的域中,并且我没有连接到公司的网络,因此数据库无法解析所有者。
所以我所做的是将所有者更改为本地用户并且它有效!! 希望这有助于某人。
通过右键单击数据库,属性,文件,所有者
来更改用户答案 4 :(得分:5)
USE [ECMIS]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO
有效。
答案 5 :(得分:3)
这为我修好了。它设置了在'文件下找到的所有者'数据库属性窗口的一部分,由管理工作室编写。
USE [your_db_name]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO
根据sp_changedbowner documentation,现在已弃用。
基于以色列的回答。 Aaron的回答是这种不贬低的变体。
答案 6 :(得分:2)
选择数据库-右键单击-选择属性
在页面左侧选择FILE
在“所有者”框中选择带有三个点(…)的按钮
现在选择用户“ sa”,然后单击“确定”
答案 7 :(得分:0)
我刚刚经历过这个。我已经阅读了这个页面上的建议,以及SQL Authority的建议(这是相同的事情),并且没有上述工作。
最后,我删除了帐户并重新创建(使用相同的用户名/密码)。就这样,所有问题都消失了。
可悲的是,这意味着我不知道出了什么问题,所以我无法分享其他任何东西。
答案 8 :(得分:0)
1.右键点击你的数据库, 2.然后选择属性。 3.如果您使用的是Microsoft sql 2008,请选择兼容级别中的选项选择sql 2008 [100]。
4.然后选择文件并在所有者的文本框中写(sa)
100%适合我。
答案 9 :(得分:0)
解决此问题的更简单方法是右键单击数据库的名称,选择“新建查询”,键入“exec sp_changedbowner'sa'”并执行查询。然后你会很高兴。
答案 10 :(得分:0)
您必须以管理员身份输入右键单击microsofft sql server management studio并以管理员身份运行
答案 11 :(得分:0)
只需要在查询编辑器中执行它 在DATABASE :: YOURDatabase上更改授权到[domain \ account];
答案 12 :(得分:-3)
真正的问题是默认所有者(dbo)根本没有映射到它的登录。当我尝试将sa登录映射到数据库所有者时,我收到另一个错误,指出“用户,组或角色'dbo'已经存在......“。但是,如果您尝试使用此代码,它实际上会起作用:
EXEC sp_dbcmptlevel'yourDB','90';
去
将DATABASE :: yourDB上的授权更改为“yourLogin”
去
使用[yourDB]
去
执行用户= N'dbo'REVERT
去
答案 13 :(得分:-3)
右键单击数据库,然后选择属性。 如果您正在使用Microsoft sql 2008,请选择兼容级别中的选项选择sql 2005 [90]而不是2008。 然后选择文件并在所有者的文本框中写入(sa)。 它可能会起作用