附加数据库会导致错误“服务器主体无法访问数据库”

时间:2011-04-12 09:44:39

标签: sql-server

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

当我尝试使用其他用户帐户时,我收到登录失败错误。

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

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

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

  

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

如何以编程方式完成?

3 个答案:

答案 0 :(得分:0)

您应该更改数据库所有者

exec sp_changedbowner 'yourlogin',NULL

然后

ALTER DATABASE [Your_DB] SET TRUSTWORTHY ON

答案 1 :(得分:0)

我看到帖子太旧了。但我想发表我的回答。实际上,我认为您要将数据库与没有该数据库所需权限级别的用户连接起来。您需要将数据库与具有较高权限级别的用户连接

答案 2 :(得分:0)

我在SQL Server 2016上遇到了同样的问题。

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

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

已修复