数据库图支持对象无法安装…没有有效的所有者
我试图用SQL Server 2008创build一个数据库diagramm,但是发生错误:
数据库图支持对象无法安装,因为此数据库没有有效的所有者。 要继续,请首先使用“数据库属性”对话框的“文件”页面或ALTER AUTHORIZATION语句将数据库所有者设置为有效login,然后添加数据库关系图支持对象。
然后我尝试了以下内容:
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
下一个erorrpopup:
消息15404,级别16,状态11,行1无法获取有关Windows NT组/用户'WIN-NDKPHUPPNFL \ Administrator',错误代码0x534的信息。
问题是PC的名称已经改变为“DevPC”,我也在更新脚本中更改了这个,但仍然是错误15404。
我能做些什么来解决这个恼人的错误?
您应该考虑数据库所有权的SQL身份validation帐户; 那么你不必担心帐户来去,数据库或实例移动到不同的服务器,并且你的下一个PC名称改变。 我有几个系统,我们使用:
ALTER AUTHORIZATION ON DATABASE::Ariha TO [sa];
或者,如果您想将所有者更改为该本地pipe理员帐户,则应该是:
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
在SQL Server Management Studio中执行以下操作:
- 右键点击你的数据库,select属性
- 转到选项页面
- 在标有“Compatibility Level”的右边下拉菜单中select“SQL Server 2005(90)”3-1。 如果收到可比性错误,请select“SQL Server 2008”。
- 转到文件页面
- 在所有者文本框中input“sa”。 5-1或点击省略号(…)并select一个合适的所有者。
- 点击确定
这样做之后,您现在可以访问数据库图表。
1.select您的数据库>> Right Click >> Select Properties
2.在页面左侧selectFILE
3.在OWNER
框中,select其中有三个点(…)的button
4.现在select用户'sa'
或NT AUTHORITY\SYSTEM
,然后单击确定
在所有者文本框中input“SA”而不是“sa”。 这对我有效。
我有同样的问题。
我想看看我在家里工作的同一天创build的图表。 但是我不能因为这个消息。
我发现数据库的所有者是我的电脑的用户 – 正如所料。 但由于电脑在公司的领域,而我没有连接到公司的networking,数据库无法解决业主。
所以我所做的是将所有者更改为本地用户 ,并且工作正常!
希望这有助于某人。
通过右键单击数据库,属性,文件,所有者来更改用户
这为我修好了。 它将在数据库属性窗口的“文件”部分中设置所有者,并由pipe理工作室编写脚本。
USE [your_db_name] GO EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false GO
根据sp_changedbowner文档,现在已经废弃了。
根据以色列的答案。 亚伦的答案是这个不被弃用的变化。
USE [ECMIS] GO EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false GO
有用。
我刚刚经历过这个。 我已经阅读了这个页面上的build议,以及SQL Authority的build议(这是同样的事情),以上都没有工作。
最后,我删除了帐户并重新创build(使用相同的用户名/密码)。 就这样,所有的问题都消失了。
可悲的是,这意味着我不知道出了什么问题,所以我不能分享任何其他的东西。
1.右键点击你的数据库,2.然后select属性。 3.select兼容级别的选项selectSQL 2008 [100]如果您正在使用Microsoft SQL 2008。
4.然后select文件并在所有者文本框中写入(sa)
100%为我工作。
解决这个问题的一个更简单的方法是右键单击数据库的名称,select“新build查询”,input“exec sp_changedbowner'sa'”并执行查询。 那么你会好起来的。
你必须inputpipe理员权限点击微软SQL服务器pipe理工作室,并作为pipe理员运行
真正的问题是,默认所有者(dbo)根本没有映射到它的login。当我试图将salogin映射到数据库所有者时,我收到另一个错误,指出“用户,组或angular色'dbo'已经存在…“。但是,如果你尝试这个代码,它会实际上工作:
EXEC sp_dbcmptlevel'yourDB','90';
走
修改DATABASE :: yourDB到“yourLogin”
走
使用[yourDB]
走
EXECUTE AS USER = N'dbo'REVERT
走
右键点击你的数据库,然后select属性。 select兼容级别的选项selectSQL 2005 [90],而不是2008如果您正在使用Microsoft SQL 2008.然后select文件,并在所有者的文本框中写入(sa)。 它可能会工作