首页 文章

数据库图表支持对象无法安装...没有有效的所有者

提问于
浏览
121

我尝试使用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 回答

  • 1

    您应该考虑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
    
  • 3

    在SQL Server Management Studio中执行以下操作:

    • 右键单击数据库,选择属性

    • 转到选项页面

    • 在右侧标记为"Compatibility Level"的下拉菜单中选择"SQL Server 2005(90)" 3-1 . 如果收到可比性错误,请选择"SQL Server 2008" .

    • 转到“文件”页面

    • 在所有者文本框中输入"sa" . 5-1或点击省略号(...)并选择合法的所有者 .

    • 点击确定

    完成此操作后,您现在可以访问数据库图表 .

    enter image description here

  • 0

    在所有者文本框中输入“SA”而不是“sa” . 这对我有用 .

  • 0

    我有同样的问题 .
    我想查看我的图表,这是我在工作当天在家里创建的 . 但我不能因为这个消息 .
    我发现数据库的所有者是我的计算机的用户 - 如预期的那样 . 但由于计算机位于公司_703140的网络中,因此数据库无法解析所有者 .

    所以我做的是 change the owner to a local user ,它的确有效!
    希望这有助于某人 .

    您可以通过右键单击数据库,属性,文件,所有者来更改用户

  • -3
    USE [ECMIS]
    GO
    EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
    GO
    

    有用 .

  • 0

    这为我修好了 . 它设置在数据库属性窗口的“文件”部分下找到的所有者,并且由管理工作室编写脚本 .

    USE [your_db_name]
    GO
    EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
    GO
    

    根据sp_changedbowner documentation,现在已弃用 .

    基于以色列的答案 . 亚伦的答案是这种不贬低的变化 .

  • 4

    选择数据库 - 右键单击 - 选择属性

    在页面左侧选择FILE

    在OWNER框中,选择其中包含三个点(...)的按钮

    现在选择用户'sa并单击OK

  • 198

    我刚刚经历过这个 . 我已经阅读了这个页面上的建议,以及SQL权威机构的建议(这是同一件事)并且没有上述工作 .

    最后,我删除了帐户并重新创建(使用相同的用户名/密码) . 就这样,所有问题都消失了 .

    可悲的是,这意味着我不知道出了什么问题所以我不能分享任何其他的东西 .

  • 4

    1.右键单击数据库,然后选择属性 . 3.如果您正在使用Microsoft sql 2008,请选择兼容级别中的选项选择sql 2008 [100] .

    4.然后选择文件并在所有者的文本框中写入(sa)

    100%适合我 .

  • -3

    解决此问题的更简单方法是右键单击数据库的名称,选择“新建查询”,键入“exec sp_changedbowner'sa”并执行查询 . 然后你会好起来的 .

  • 5

    你必须以管理员身份输入右键单击microsofft sql server management studio并以管理员身份运行

  • 166

    真正的问题是默认所有者(dbo)根本没有映射到它的登录 . 当我尝试将sa登录映射到数据库所有者时,我收到另一个错误,指出“用户,组或角色'dbo'已存在......“ . 但是,如果您尝试此代码,它将实际工作:

    EXEC sp_dbcmptlevel'yourDB','90';在DATABASE上更改AUTHORASE :: yourDB到“yourLogin”去使用[yourDB] go EXECUTE AS USER = N'dbo'REVERT go

  • 0

    右键单击数据库,然后选择属性 . 如果您正在使用Microsoft sql 2008,请选择兼容级别中的选项选择sql 2005 [90]而不是2008 . 然后选择文件并在所有者的文本框中写入(sa) . 它可能会工作

相关问题