Подключение баз данных приводит к ошибке «Основной сервер не может получить доступ к базе данных»

#sql-server

#sql-сервер

Вопрос:

У меня есть 2 базы данных, к которым я хочу подключить SQL Server Express.

Когда я пытаюсь выполнить это с другой учетной записью пользователя, я получаю сообщение об ошибке входа в систему.

Этот код устанавливает владельцем баз данных текущего пользователя

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

Это работает для первой базы данных, но для второй я получаю эту ошибку:

основной сервер не может получить доступ к базе данных

Как это можно сделать программно?

Комментарии:

1. я решил эту проблему. я активировал гостевого пользователя для своей базы данных. я использовал запрос, который я нашел в sql. этот запрос предоставляет все разрешения «Гостевому» пользователю моей базы данных.

Ответ №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, я могу добавить эту базу данных туда. Итак, в моем случае это решаемая проблема.

исправлено