【问题标题】:Attaching databases results in error "The server principal is not able to access the database"附加数据库导致错误“服务器主体无法访问数据库”
【发布时间】:2016-09-15 21:20:12
【问题描述】:

我有 2 个数据库,我想将它们附加到 SQL Server Express。

当我使用另一个用户帐户尝试时,我收到登录失败错误。

此代码将数据库的所有者设置为当前用户

use [DatabaseName] 
create user[DomainName\\UserName] for login [DomainName\\UserName] 
exec sp_addroleMember 'db_owner','DomainName\\UserName'

这适用于第一个数据库,但对于第二个我收到此错误:

服务器主体无法访问数据库

如何以编程方式完成?

【问题讨论】:

  • 我解决了这个问题。我已经为我的数据库激活了来宾用户。我使用了我在 sql 中找到的查询。这个查询将所有权限授予我数据库的“来宾”用户。

标签: sql-server


【解决方案1】:

您应该更改数据库所有者

exec sp_changedbowner 'yourlogin',NULL

然后

ALTER DATABASE [Your_DB] SET TRUSTWORTHY ON

【讨论】:

    【解决方案2】:

    我看到帖子太旧了。但我想发布我的答案。实际上,我认为您正在尝试将数据库与不需要该数据库的权限级别的用户连接。您需要将数据库连接到具有更高权限级别的用户

    【讨论】:

      【解决方案3】:

      我在使用 SQL Server 2016 时遇到了同样的问题。

      由于某些原因,我有 2 个实例 - FIYYYY\CRM 和 FIYYYY\SQLExpress

      默认情况下,我确实连接到了 FIYYYY\CRM,但我无法在那里添加数据库(那里出现此错误),但是当我连接到 FIYYYY\SQLExpress 实例时,我能够在那里添加这个数据库。 所以在我的情况下,这已经解决了。

      固定的

      【讨论】:

        猜你喜欢
        • 2022-08-10
        • 2022-10-05
        • 1970-01-01
        • 2018-11-15
        • 2022-07-13
        • 2013-05-12
        • 2019-07-01
        • 2021-12-03
        • 1970-01-01
        相关资源
        最近更新 更多