SQL Server: успех входа в систему, но " база данных [dbName] недоступна. (ObjectExplorer)"

Я использую windows 8.1 и SQL Server 2012.

Я использовал учетную запись ОС "Manoj" для доступа к SQL SERVER с проверкой подлинности windows. Недавно я удалил свою учетную запись пользователя" Manoj " ОС и создал новую учетную запись с тем же именем "Manoj".

но система приняла новую учетную запись как "Manoj_2". Это изменение удерживает меня от доступа к старым базам данных, которые я создал.

Он говорит, что

база данных [dbName] не является доступный. (ObjectExplorer)

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

Я использовал для создания нового входа в SQL Server для "Manoj_2", с БД по умолчанию как"master". Но все же проблема сохраняется.

Я не могу отключить DBs. Я не могу расширить DBs.

Примечание: В ОС у меня есть права администратора для учетной записи "Manoj".

пожалуйста, кто-нибудь скажите, что делать? либо с ОС, либо с SQL Server

17 ответов


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

запуск SQL Server в однопользовательском режиме позволяет любому члену локальной группы администраторов компьютера подключиться к экземпляру SQL Server в качестве члена предопределенной роли сервера sysadmin.

здесь вы можете найти пошаговую инструкцию для этого.

короче говоря, вы должны запустить экземпляр sqlserver с параметрами - m, после запуска SQL Server Management Studio с проверкой подлинности windows.

теперь ты администратор, назначить роли sysadmin для вашего пользователя выйдите и удалите - m параметр и перезапустите sql server.


действительно глупое решение, но я добавлю его здесь, Если кто-нибудь попадет сюда из поиска Google.

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


проблема в том, что пользователь в базе данных "сирота". Это означает, что с пользователем не связан идентификатор входа или пароль. Это верно, даже если есть идентификатор входа, соответствующий пользователю, так как есть GUID (называемый SID в Microsoft-speak), который также должен соответствовать.

Это было больно исправить, но в настоящее время (SQL Server 2000, SP3) существует хранимая процедура, которая выполняет тяжелую работу.

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

во-первых, убедитесь, что это проблема. Это будет список осиротевших пользователей:

EXEC sp_change_users_login 'Report'

Если у вас уже есть логин и пароль для этого пользователя, чтобы исправить это:

EXEC sp_change_users_login 'Auto_Fix', 'user'

Если вы хотите создать новый логин и пароль для этого пользователя, чтобы исправить это:

EXEC sp_change_users_login 'Auto_Fix', 'user', 'login', 'password'

этот текст был получен http://www.fileformat.info/tip/microsoft/sql_orphan_user.htm в ДЕЗ-13-2017


This is caused when the user's default database is set to a database they don't have permissions or its offline.

просто попробуйте повторно добавить пользователя.Пожалуйста посмотрите здесь тоже.


вот что привело меня к этой проблеме и как я ее исправил:

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

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

сообщение об ошибке.

удаленный пользователь как DBowner, затем считывается с теми же учетными данными, сопоставлениями, логином и т. д.

смог войдите в систему как пользователь после чтения пользователя после восстановления.


на

Безопасность >> Входы >> Щелкните правой кнопкой мыши пользователя > > свойства >>

на левой навигации перейдите к > > отображение пользователя > > Проверьте базу данных и в" членство в роли базы данных для: "проверьте" db_owner " для пользователя, который вы испытываете проблему.

ПРОБЛЕМА РЕШЕНА...


пожалуйста, попробуйте этот скрипт.. Этот скрипт просматривает Активные сеансы базы данных и убивает их, чтобы вы могли снова включить базу данных.

 CREATE TABLE #temp_sp_who2
        (
          SPID INT,
          Status VARCHAR(1000) NULL,
          Login SYSNAME NULL,
          HostName SYSNAME NULL,
          BlkBy SYSNAME NULL,
          DBName SYSNAME NULL,
          Command VARCHAR(1000) NULL,
          CPUTime INT NULL,
          DiskIO INT NULL,
          LastBatch VARCHAR(1000) NULL,
          ProgramName VARCHAR(1000) NULL,
          SPID2 INT
          , rEQUESTID INT NULL --comment out for SQL 2000 databases

        )


    INSERT  INTO #temp_sp_who2
    EXEC sp_who2


    declare @kill nvarchar(max)= ''
    SELECT  @kill = @kill+ 'kill '+convert(varchar,spid) +';'
    FROM    #temp_sp_who2
    WHERE   DBName = 'databasename'

    exec sp_executesql @kill


  ALTER DATABASE DATABASENAME SET ONLINE WITH IMMEDIATE ROLLBACK

в моем случае мне просто нужно было запустить приложение с "Запуск от имени администратора", чтобы получить доступ к чему-либо. В противном случае я бы получил ошибку, о которой Вы упомянули.


У меня было два пользователя: один с ролью sysadmin, другой (проблемный) - нет.

поэтому я вошел в систему с другим пользователем(вы можете создать новый) и установил флажок ckeck "sysadmin" из: Security - > Logins - > Right ckick на вашем имени пользователя SQL - > свойства - > роли сервера - > убедитесь, что флажок "sysadmin" имеет флажок. Нажмите OK и попробуйте подключиться к недавно проверенному пользователю.


это исправило его для меня:

Use [dbName]
GO

EXEC sp_change_users_login 'Auto_Fix','Manoj', null, 'Manojspassword'
GO

проблема: база данных [dbName] недоступна. (ObjectExplorer) получил ошибку при расширении базы данных.

решение: Деаттач базы данных > опция Drop Присоедините базу данных снова с файлом mdf под папкой данных mssql


Если вы используете SQL Management Studio, просто запустите его как администратор.

щелкните правой кнопкой мыши- > Запуск от имени администратора


в моем случае перезапуска службы SQL Server было достаточно, чтобы решить эту проблему.


моя проблема решена путем перезапуска службы MS SQL server, просто.


в моем случае это сработало, когда я открыл SQL Server Management Studio с учетными данными администратора, и я щелкнул правой кнопкой мыши по базе данных и выберите"выходить в интернет


получить эту ошибку в этих шагах:

  1. выполнить "get offline".
  2. "оффлайн" слишком долго, поэтому я закрыла это окно.
  3. затем я получил эту ошибку.

действия для исправления:

  1. перейдите в "монитор активности" и удалите все подключения к этой БД. Затем DB стал действительно автономным, и все в порядке.

Я выполнил следующие шаги, и это сработало для меня:

1) подключение к SQL Server - >безопасность - >логины - >поиск конкретного пользователя - >свойства - >роли сервера - > включить" sys admin " флажок