Вижен софт ошибка доступа к базе данных

Обновлено: 06.07.2024

Невозможно создать соединение с источником данных «имя_источника_данных». (rsErrorOpeningConnection)

Ошибка входа пользователя «ИмяПользователя»

У пользователя отсутствует разрешение на доступ к источнику данных. При использовании базы данных SQL Server убедитесь, что пользователь имеет допустимое имя для входа в базу данных. Дополнительные сведения о создании пользователя базы данных или имени входа SQL Server см. в разделах Как создать пользователя базы данных и Как создать имя входа SQL Server.

Неудачная попытка входа пользователя «NT AUTHORITY\ANONYMOUS LOGON»

Эта ошибка появляется, когда учетные данные проходят через несколько подключений компьютеров. Если используется проверка подлинности Windows, а протокол Kerberos версии 5 не разрешен, то эта ошибка появляется, когда учетные данные проходят более чем через одно компьютерное соединение. Чтобы избежать этой ошибки, рассмотрите использование сохраненных или запрашиваемых учетных данных. Дополнительные сведения о решении этой проблемы см. в разделе Задание учетных данных и сведений о подключении для источников данных отчета.

При соединении с сервером произошла ошибка.

Эта ошибка при соединении с SQL Server может быть вызвана тем, что в параметрах SQL Server по умолчанию запрещены удаленные соединения. (поставщик: поставщик именованных каналов, ошибка: 40 — Невозможно открыть соединение с SQL Server). Эта ошибка возвращается экземпляром компонента Database Engine, где находится база данных сервера отчетов. В большинстве случаев она возникает из-за остановки службы SQL Server. Кроме того, если используется выпуск SQL Server Express с Advanced Services или именованный экземпляр, эта ошибка возникает, если неправильно указан URL-адрес сервера отчетов или строка соединения с базой данных сервера отчетов. Чтобы решить эти проблемы, нужно сделать следующее.

  • Убедитесь, что служба SQL Server (MSSQLSERVER) запущена. На компьютере экземпляра компонента Database Engine нажмите кнопку "Пуск", выберите "Администрирование", "Службы" и перейдите к службе SQL Server (MSSQLSERVER). Если эта служба не запущена, щелкните ее правой кнопкой мыши, выберите пункт "Свойства", для параметра "Тип запуска" выберите значение "Автоматически", затем последовательно нажмите кнопки "Применить", "Пуск" и "ОК".
  • Проверьте правильность URL-адреса сервера отчетов и строки подключения к базе данных сервера отчетов. Если службы Reporting Services или компонент Database Engine были установлены как именованный экземпляр, строка соединения по умолчанию, которая создается во время установки, будет содержать имя экземпляра. Например, если экземпляр по умолчанию выпуска SQL Server Express с дополнительными службами устанавливался на сервер с именем DEVSRV01, URL-адресом веб-портала будет DEVSRV01\Reports$SQLEXPRESS. Имя базы данных сервера отчетов в строке соединения будет похоже на DEVSRV01\SQLEXPRESS. Дополнительные сведения о URL-адресах и строках соединения с источниками данных для SQL Server Express см. в разделе Службы Reporting Services в выпуске SQL Server Express with Advanced Services. Чтобы проверить строку соединения с базой данных сервера отчетов, запустите программу настройки служб Reporting Services и просмотрите страницу "Установка базы данных".

Невозможно установить соединение. Убедитесь, что запущен сервер.

Если эта ошибка также содержит "Неизвестный узел", она указывает на недоступность сервера служб Analysis Services или на отказ в соединении. Если сервер служб Analysis Services установлен в качестве именованного экземпляра на удаленном компьютере, возможно, потребуется запустить службу браузера SQL Server, чтобы получить имя порта, используемого экземпляром.

(Источник прокси-сервера SOAP служб Reporting Services)

  • Строка соединения для источника данных включает слово localhost.
  • Для службы SQL Server отключен протокол TCP/IP.

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

  1. Запустите диспетчер конфигурации SQL Server.
  2. Разверните узел Сетевая конфигурация SQL Server 2005.
  3. Выберите Протоколы для MSSQLSERVER.
  4. Щелкните правой кнопкой мыши пункт TCP/IP и выберите Включить.
  5. Выберите Службы SQL Server.
  6. Щелкните правой кнопкой мыши SQL Server (MSSQLSERVER) и выберите команду Перезапустить.

Ошибка инструментария WMI при соединении с сервером отчетов в среде Management Studio

По умолчанию среда Management Studio использует инструментарий управления Windows (WMI) служб Reporting Services, чтобы установить соединение с сервером отчетов. Если поставщик WMI установлен неправильно, при попытке установить соединение с сервером отчетов возникнет следующая ошибка.

Не удается подключиться к <your server name>. Поставщик WMI служб Reporting Services не установлен или не настроен (Microsoft.SqlServer.Management.UI.RSClient)».

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

Ошибка при подключении во время входа в систему из-за неизвестного имени пользователя или неправильного пароля

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

Если изменен пароль, то необходимо обновить соединение. Дополнительные сведения см. в разделе Настройка соединения с базой данных сервера отчетов (диспетчер конфигурации сервера отчетов).

Серверу отчетов не удается установить соединение с базой данных сервера отчетов. (rsReportServerDatabaseUnavailable).

Кроме того, эта ошибка может появиться в случае, если экземпляр компонента Database Engine, хранящего базу данных сервера отчетов, не настроен для удаленных соединений. Удаленное соединение включено по умолчанию в некоторых выпусках SQL Server. Чтобы проверить, включено ли оно на экземпляре SQL Server Database Engine, запустите диспетчер конфигурации SQL Server. Необходимо включить как протокол TCP/IP, так и именованные каналы. Сервер отчетов использует оба эти протокола. Инструкции по включению удаленных соединений см. в подразделе "Настройка удаленных соединений с базой данных сервера отчетов" раздела Как настроить сервер отчетов для удаленного администрирования.

Если эта ошибка дополнительно содержит следующий текст, значит у учетной записи, используемой для запуска экземпляра ядра СУБД, истекло время действия пароля: "При соединении с сервером произошла ошибка. При подключении к SQL Server эта ошибка может быть вызвана тем, что в конфигурации по умолчанию SQL Server не разрешает удаленные соединения". (поставщик: сетевые интерфейсы SQL Server, ошибка: 26 — ошибка при поиске указанного сервера/экземпляра) ." Чтобы устранить эту ошибку, установите пароль заново.

«Сервер RPC не прослушивается»

Служба сервера отчетов для некоторых операций использует сервер удаленного вызова процедур (RPC). Если появляется ошибка «Сервер RPC не прослушивается», проверьте, работает ли служба сервера отчетов.

Непредвиденная ошибка (общая сетевая ошибка)

Невозможность предоставления доступа к базе данных в центре администрирования SharePoint

Это происходит, потому что функция "Контроль учетных записей пользователей" (UAC) в Windows Vista и Windows Server 2008 требует того, чтобы администратор явным образом позволил повысить права доступа и использовать токен администратора при выполнении задач, требующих разрешения администратора. Однако в этом случае служба администрирования Windows SharePoint Services не может повысить права доступа для учетных записей службы Reporting Services таким образом, чтобы предоставить им доступ к конфигурации и базам данных содержимого SharePoint.

В службах SQL Server 2008 Reporting Services доступ к базе данных необходим только учетной записи службы сервера отчетов. В службах SQL Server 2005 Reporting Services с пакетом обновлений 2 (SP2) доступ к базе данных необходим учетным записям службы Windows сервера отчетов и веб-службы сервера отчетов. Дополнительные сведения об учетной записи службы сервера отчетов в SQL Server 2008 см. в разделе "Учетная запись службы (настройка служб Reporting Services)".

Есть два возможных варианта решения этой проблемы.

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

Соблюдайте осторожность при отключении контроля учетных записей для решения этой проблемы. Включите контроль учетных записей сразу после предоставления доступа к базе данных в центре администрирования SharePoint. Если вы не желаете отключать контроль учетных записей, используйте второй способ, указанный в этом разделе. Дополнительные сведения о контроле учетных записей см. в документации по Windows.
2. Во втором случае можно вручную предоставить доступ к базе данных для учетных записей службы Reporting Services. Выполните следующие процедуры, чтобы предоставить доступ, добавив учетные записи служб Reporting Services в правильные роли группы и базы данных Windows. Эта процедура применима к учетной записи службы сервера отчетов в SQL Server 2008 Reporting Services. Если запущены службы SQL Server 2005 Reporting Services, выполните эту процедуру для учетной записи службы Windows сервера отчетов и учетной записи веб-службы сервера отчетов.

Предоставление доступа к базе данных вручную

  1. Добавьте учетную запись службы сервера отчетов в группу WSS_WPG Windows на компьютере Reporting Services.
  2. Выполните соединение с экземпляром базы данных, в котором расположены базы данных конфигурации и содержимого SharePoint, и создайте имя входа базы данных SQL для учетной записи службы сервера отчетов.
  3. Добавьте имя входа базы данных SQL для следующих ролей баз данных.
  • роль db_owner role в базе данных WSS Content
  • роль WSS_Content_Application_Pools в базе данных SharePoint_Config

Невозможность соединения с каталогами /reports и /reportserver при создании баз данных сервера отчетов на виртуальном сервере SQL Server, запущенном в кластере службы кластеров (Майкрософт)

См. также:

Нужна помощь? Майкрософт: вопросы и ответы, Stackoverflow, Отзывы о продукте SQL Server

Ошибка при подключении к Microsoft SQL Server 2008
создал базу данных в Microsoft SQL Server 2008, и хочу подключить к проекту WinForm, через.

Ошибка в подключении SQL Server 2008
Помогите пожалуйста. Настроил SQL как здесь написано в 3 топике.

Что именно во фразе "Сервер не найден или недоступен" Вам не понятно?

Собственно Вам там уже ответили. Ещё на самом видном месте форума висит это.

Не понятно как решить данную проблему )))
SQL сервер то запущен и подключен
вроде все хорошо
но общаться с ним я не могу *_*

Добавлено через 50 минут
1. Sql Browser запущен.

2. TCP IP включен.

3. Брандмауэр windows Отключен.

4. В Sql Server Management Studio стоит галочка: allow remote connections.

и все равно ничего

Добавлено через 31 секунду
Win 8.1 x64
server 2014
VS 2012

Может строку подключения не правильно сформировали. строки подключения взяты из методического материала
Ну что я могу ещё посоветовать. Попробуйте из Visual Studio подключиться к Вашей БД (через обозреватель серверов) используя данные для подключения, которые вы предоставили в предыдущем посте. Если студия сможет подключиться, то значит Вы строку подключения не передаёте в SqlConnection или ещё чего непредсказуемого делаете

причем пимпочка горит зеленая
это разве не говорит о том , что база подключена ?

Обратите внимание в правый нижний угол картинки. Там есть кусок строки подключения в которой указано Data Source=Hero (в это время Ваша база в обозревателе выбрана), Вы же в коде писали SQLExpress. Используйте всю строку подключения использовавшуюся для создания подключения в обозревателе. Уберите SqlConnectionStringBuilder и напрямую передайте эту строку объекту SqlConnection.

испрашивал SQLExpress
на HERO
опять итог все тот же )

а смысл убирать SqlConnectionStringBuilder
по сути ведь ничего не изменится , разве нет?

У тебя уже есть готовая строка подключения в свойстве соединения с БД (в обозревателе серверов) - используй её. SqlConnectionStringBuilder в данном случае снабжён неполной/неверной информацией и создаёт (при вызове метода ToString()) неверную строку подключения, что и приводит к ошибке.
Или изучи имеющуюся строку подключения, чтобы понят, что ты не так указал в свойствах SqlConnectionStringBuilder или просто используй уже готовую (и гарантированно рабочую) строку.

честно говоря я не совсем понял
что необходимо исправлять в коде , что бы все было красиво

Скопируй строку подключения из свойств подключения к базе в обозревателе серверов и используй ей взамен вызова bldr.ConnectionString при создании объекта SqlConnection. Спасибо , удалось подключиться
и столкнулся с тем , что у меня нифига не работает xD Это как минимум потому, что у вас не верно составлены запросы. Вот один из примеров:
SQL сервер таким запросом подавится. Ключевые слова в выражении должны быть разделены пробелом.
В 81 строке тоже есть ключевые слова не разделённые пробелами.

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

к таблице сформированной с помощью JOIN можно ведь применить Where ?

Добавлено через 1 час 43 минуты
поправил и заработало
создам ка отдельную темку
ибо вопросов еще много

Ошибка при подключении к SQL
Не запускается прога с привязкой к БД. Вот текст. Подробная информация об использовании.

Ошибка при подключении к SQL базе данных при переносе программы
Я добавил базу данных SQL &quot;*.mdf&quot; к проекту. Если использовать параметры строки подключения типа.

Ошибка при подключении к SQL с логином и паролем
Доброво времени суток! Подскажите пожалуйста - при попытке подключения из приложения к SQL 2005.

Ошибка при подключении к SQL Server
Здравствуйте. Создал базу, добавил GridView, который связал с SQLDataSource. Но при запуске формы.

Я использую SQL Server 2008 developer edition. Я пытался подключить базу данных AdventureWorks2008.

когда я попытался подключиться, я получил ошибку "доступ запрещен". Согласно журналу событий, он пришел из O/ S:

открыть не удалось: не удалось открыть файл D:ProjectDataAdventureWorksAdventureWorksLT2008_Data - . mdf для файла номер 0. Ошибка ОС: 5 (Доступ запрещен.).

Я думал, что "проблема NTFS", но система (и я) имеют изменить доступ к файлам.

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

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

есть идеи, почему я должен был войти в систему как sa?

запустите SQL Server Management Studio от имени администратора. (правый клик-> Запуск от имени администратора), который заботился обо всех странностях в моем случае.

SQL SRV EXPRESS 2008 R2. Windows 7

Спасибо за все замечания. Некоторые из вас помогли мне найти ответ. Вот что я нашел:

Это была проблема разрешения NTFS, а не проблема SQL. Кроме того, он выглядит как ошибка (и он повторяется).

проблема: Учетная запись, которую я использовал, имела полные разрешения NTFS для файлов mdf и ldf. Однако у него были эти разрешения через членство в группе (у локальной группы администраторов были разрешения, и моя учетная запись член местных администраторов). (Я проверил разрешения)

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

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

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

таким образом, похоже, что ошибка возникает из-за того, что некоторый код (либо в SQL Server, либо в Management Studio) проверяет разрешения, которые содержит учетная запись пользователя, но он не заходит так далеко, чтобы проверить разрешения группы, которые наследует учетная запись пользователя.

Это звучит странно для меня, но я могу воспроизводить его снова и снова, поэтому я пришел к выводу, что это ответ.

Я хотел бы добавить дополнительную информацию к ответам, которые были опубликованы.

будьте осторожны при отсоединении базы данных потому что пользователь windows вы вошли в систему как становится единственным пользователем с разрешениями .файл mdf! Исходные разрешения .файл mdf, который включал пользователя SQLServerMSSQLUser$<computer_name>$<instance_name> и учетная запись администратора перезаписывается тем пользователем windows, который вошел в систему как (не пользователь sql server). Бум, все разрешения ушли просто как это. Так что делайте, как сказали другие, и щелкните правой кнопкой мыши .файл MDF и дважды проверьте разрешения.

я столкнулся с этой проблемой, потому что я использовал SSMS для подключения к базе данных (не имеет значения, какая учетная запись sql server) и отсоединил базу данных. После этого мой пользователь windows был единственным, у которого были какие-либо разрешения .файл mdf. Поэтому позже, когда я попытался подключить БД с помощью учетной записи sa, он выбросил ошибку "отказано в доступе".

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

добавить разрешение в папку, где ваш Это.

проверьте это имя: NT Service\MSSQLSERVER

, и Location на имя сервера.

эта проблема вызвана UAC (Контроль учетных записей), не так ли? Хотя ваша учетная запись пользователя является членом группы администраторов, UAC в Windows 7 не позволяет вам делать администраторские вещи, если вы не запускаете программы "от имени администратора". Это не настоящая ошибка в SQL Server или Management Studio или что-то еще. (Хотя он может знать проблему и попросить у вас повышенные разрешения вместо того, чтобы просто жаловаться на "ошибку 5".)

запустите SQL Server Management Studio от имени администратора. (правая кнопка мыши-> Запуск от имени администратора) работал для меня с Windows 7 к SQL серверу 2008 Р2

база данных SQL2005 может быть присоединена таким образом в Windows 7:

и затем подключенная база данных успешно завершена.

при входе в sa (или любая учетная запись Sql Server), вы функционируете как учетная запись службы SQL Server, когда вы вошли в систему как вы, у вас есть разрешения вашей учетной записи. По какой-то причине у вас нет соответствующего доступа к файлам, но у учетной записи службы есть.

на sa пользователь использует учетные записи NTFS SQLServerMSSQLUser$<computer_name>$<instance_name> и SQLServerSQLAgentUser$<computer_name>$<instance_name> доступ к файлам базы данных. Вы можете попробовать добавить разрешения для одного или обоих этих пользователей.

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

со мной - Работает на window 8 - Щелкните правой кнопкой мыши SQL Server Manager Studio - > выполнить с администратором. - >прикрепить нет проблем

может быть исправлено easly но radicaly, просто перейдите в папку, где у вас хранятся файл mdf. выберите файл - > щелкните правой кнопкой мыши - > нажмите на свойства и дайте полные разрешения на файл для входа в систему безопасности пользователя.

Я нашел это решение: щелкните правой кнопкой мыши на папке, где вы храните свой .mdf файл --> нажмите Свойства --> выберите вкладку Безопасность, нажмите Изменить. и дайте ему полный контроль. Надеюсь, это поможет!

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

Я настоятельно рекомендую вместо взлома с разрешениями на различные каталоги и учетные записи просто переместить файл данных в каталог, который sql server ожидает найти.

Я просто хотел добавить эту информацию.

вы получаете эту ошибку, потому что две разные логины сделали операции отсоединения и присоединения. Таким образом, файлы при отсоединении принадлежали первому логину, но прикрепление не удалось, потому что используемый логин не был владельцем файлов mdf и ldf.

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

щелкните правой кнопкой мыши на " filename.mdf " файл и выберите Свойства, чтобы проверить разрешения файла mdf. Здесь мы видим, что только одна учетная запись имеет разрешение на "именем.mdf", потому что это была учетная запись, которая использовалась для отсоединения базы данных.

чтобы решить эту проблему, нажмите на Добавлять. кнопка, чтобы добавить другой логин или любой другой логин, необходимый и дать логин полный контроль. Вы также должны сделать это для файла" ldf". После выполнения этой задачи нажмите кнопку OK. (Примечание для других операционных систем, вы можете изменить параметр , нажмите на эту сначала, а потом вы увидите добавить. выбор.)

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

  • SQL Express 2008
  • Visual Studio 2010 Premium

в контекстном меню папки App_Data я создал базу данных SQL Express для целей отладки. Строка соединения (используемая NHibernate) была следующей:

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

что, наконец, решил его было открыть Проводник сервера в Visual Studio, затем подключиться к MDF и отсоединить его снова. После того, как я сделал это, мое веб-приложение могло получить доступ к базе данных.

PS. Кредиты идут в этот блог Я нашел, пока гуглил эту проблему, вызвав идея прикрепите / отсоедините базу данных для решения проблемы.

Это звучит как разрешения NTFS. Обычно это означает, что учетная запись службы SQL Server имеет доступ только для чтения к файлу (обратите внимание, что SQL Server использует ту же учетную запись службы для доступа к файлам базы данных независимо от способа входа). Вы уверены, что не изменили разрешения папки между входом в систему как самостоятельно и входом в систему как sa? Если вы отсоединитесь и повторите попытку, у него все еще будет та же проблема?

У меня была та же проблема при подключении базы данных. Это не проблема SQL это вопрос счета. Перейдите в Панель управления / Настройки управления учетной записью пользователя / установите значение "никогда не уведомлять". Наконец, перезагрузите компьютер, и он сработал для меня.

я прикрепил файл mdf, щелкнув правой кнопкой мыши базу данных и удалив файл журнала AdventureWorks2012_Data_log.ЛДФ в Мастере . Файл mdf был помещен в следующее место

вышеуказанный метод помог мне решить проблему .

Я читал на этой странице и у них там есть интересное предложение:

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

конечно, у них тоже есть это:

разрешения для пользователей и роли, и базы данных специфичны. Все разрешения суммируется с исключение из правила DENY. Отказано разрешение на уровне пользователя или на уровне роли переопределяет же разрешение, предоставленное через другую роль членство за исключением предопределенной роли сервера sysadmin. (Ля администратор сохраняет за собой все права, даже если роли у них член есть Отказать в разрешении.)

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

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

вы шалите и пытаетесь прикрепить их вручную :) серьезно, у вас есть все предпосылки для базы данных AdventureWorks2008?
Я подозреваю, что это просто еще один случай Microsoft oddity/edge, но я могу ошибаться.

Я сравнил параметры безопасности других файловых баз данных в исходном местоположении с перемещенными файлами и заметил, что MSSQL$SQLEXPRESS не был назначен разрешения для файлов в их новом местоположении. Я добавил полный контроль для "NT SERVICE\MSSQL$SQLEXPRESS" (должен включать эту службу NT), и он прикреплен только штраф.

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

Я проверил файл mdf другого проекта, который я создал непосредственно в его папке app_data. он не имеет разрешений MSSQL$SQLEXPRESS. Хммм. Интересно, почему SQL Express нравится один, но не другой?

enter image description here

заменить на ДЛЯ ATTACH -- > ДЛЯ ATTACH_FORCE_REBUILD_LOG

Это на самом деле разрешения NTFS и странная ошибка в SQL Server. Я не уверен, что приведенный выше отчет об ошибке является точным или может ссылаться на дополнительную ошибку.

чтобы решить эту проблему в Windows 7, я обычно запускал SQL Server Management Studio (не как администратор). Затем я попытался прикрепить файл MDF. В этом процессе я использовал пользовательский интерфейс, а не вставлял путь. Я заметил, что тропинка отрезана от меня. Это связано с тем, что MS SQL Server (SQLServerMSSQLUser$machinename$SQLEXPRESS) пользователь, добавляемый для вас программным обеспечением, не имеет разрешений на доступ к папке (в этом случае папка глубоко в моих собственных папках пользователя).

вставка пути и продолжение приводит к вышеуказанной ошибке. Итак, я дал пользователю MS SQL Server разрешения на чтение, начиная с первого каталога, в котором ему было отказано (моя папка пользователя). Затем я немедленно отменил операцию распространения, потому что она может занять вечность, и снова применил необходимые разрешения на чтение к следующей подпапке, и пусть это распространяется полностью.

наконец, я дал пользователю MS SQL Server разрешения на изменение .MDF и. ldf файлы для БД.

теперь я могу прикрепить к файлам базы данных.

Я получил эту ошибку, как SA. В моем случае безопасность не имела значения. Я добавил полный контроль над файлами mdf и ldf, и все прошло хорошо.

при запуске sql server 2012 Вы можете получить эту ошибку, пытаясь прикрепить более старую версию mdf-файла. ex файл mdf из sql server 2008.

Я решил проблему, просто двигаться .файл mdf, который вы хотите прикрепить к общей папке, в моем случае я переместил его в папку users/public. Затем я прикрепляю его оттуда без каких-либо проблем. Надеюсь, это поможет.

для тех, кто не смог решить проблему с другими решениями здесь, следующее исправление сработало для меня:

перейдите в папку " данные "в установке SQL Server, щелкните правой кнопкой мыши, свойства, вкладка" Безопасность "и добавьте разрешения полного управления для пользователя "сетевая служба".

(приведенная выше ссылка для SQL 2005, но это исправлено SQL 2008 R2 установка для меня).

дополнительная информация: эта проблема появилась для меня после замены дополнительного жесткого диска (на котором была установлена SQL). Я скопировал все файлы и восстановил исходную букву диска на новый жесткий диск. Однако разрешения безопасности не были скопированы. Я думаю, что в следующий раз я буду использовать лучший метод копирования данных.

WordPress – одна из популярнейших открытых систем управления контентом. Изначально платформа WordPress разрабатывалась для блогов, однако со временем она стала более гибкой и производительной, и теперь подходит для обслуживания практически любого сайта. WordPress разрабатывается почти 15 лет; сегодня это очень надёжная и ошибкоустойчивая система, однако и в ней иногда случаются сбои и ошибки.

Ошибка установки соединения с базой данных (Error Establishing Database Connection) – одна из самых распространённых ошибок WordPress. Обычно её вызывает:

  • Сбой БД (чаще всего из-за нехватки памяти).
  • Неправильные учётные данные БД в настройках WordPress.
  • Нарушение таблиц базы данных WordPress.

Требования

  • Машина с предустановленной платформой WordPress.
  • Доступ к sudo.
  • База данных должна быть запущена на одной машине с WordPress.
  • Учётные данные БД: имя пользователя, пароль и имя базы данных для WordPress. Эта информация была создана во время начальной настройки WordPress.

1: Проверка памяти сервера

Для начала нужно убедиться, что MySQL работает, и что на сервере достаточно памяти для обработки данных WordPress.

Подключитесь к серверу по SSH:

Примечание: Если вы уверены, что правильно указали учётные данные, но у вас по-прежнему возникают проблемы при входе в систему, возможно, на сервере не хватает памяти или он не справляется с большой нагрузкой. Это случается из-за неожиданного роста трафика, и этим можно объяснить ошибку WordPress. Попробуйте перезагрузить сервер и подключиться снова.

Подключившись к серверу, убедитесь, что MySQL работает:

sudo netstat -plt

Команда netstat выводит информацию о сетевой системе сервера. Приведённая выше команда выведет имена программ, которые прослушивают соединения на сокете tcp (флаги –p, –l и –t соответственно). В выводе найдите mysqld:

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

sudo systemctl start mysql

Примечание: В некоторых дистрибутивах Linux (например, в CentOS) используется mysqld вместо mysql.

Сервер MySQL должен запуститься. Чтобы убедиться в этом, снова запустите netstat и найдите в выводе строку mysqld.

Для корректной работы MySQL и WordPress нужно довольно много памяти. Сервер MySQL может прекратить работу из-за нехватки памяти. Чтобы убедиться, что ошибка произошла по этой причине, проверьте логи ошибок MySQL.

zgrep -a "allocate memory" /var/log/mysql/error.log*

Команда zgrep выполнит поиск по логам, включая более старые логи в архиве с расширением .tar.gz. Команда будет искать в логах error.log* из каталога /var/log/mysql/ все строки с пометкой allocate memory.

2017-04-11T17:38:22.604644Z 0 [ERROR] InnoDB: Cannot allocate memory for the buffer pool

Если вы видите на экране такую строку (или несколько таких строк), значит, причина ошибки подключения к БД в нехватке памяти для работы MySQL. Возможно, это произошло из-за резкого роста трафика. Если в выводе много таких строк, значит, сервер сталкивается с нехваткой памяти регулярно. В таком случае рекомендуется переместить ресурс на сервер с большим объёмом памяти. Большинство провайдеров облачного хостинга позволяют просто обновить свой сервер с минимальным временем простоя.

Если команда zgrep не вернула ничего, памяти на сервер достаточно для обработки данных WordPress и MySQL. Если ошибка установки соединения с БД не исчезла, нужно проверить настройки WordPress и убедиться, что в них указаны правильные данные о MySQL.

2: Проверка учётных данных MySQL

Если вы недавно переместили установку WordPress на новый сервер (или сменили хостинг-провайдера), вам нужно обновить информацию о БД в настройках WordPress. Они хранятся в PHP-файле wp-config.php.

Найдите этот файл:

sudo find / -name "wp-config.php"

Команда выполнит поиск в root-каталоге и найдёт все файлы wp-config.php. Если такой файл существует, команда выведет путь к нему:

Откройте его в текстовом редакторе:

sudo nano /var/www/html/wp-config.php

Этот файл содержит много переменных и комментариев к ним. В начале файла можно найти строки, отвечающие за настройки БД:

/** The name of the database for WordPress */
define('DB_NAME', 'database_name');
/** MySQL database username */
define('DB_USER', 'database_username');
/** MySQL database password */
define('DB_PASSWORD', 'database_password');

Убедитесь, что эти три переменные содержат правильные данные. Если здесь указаны неправильные значения, откорректируйте их, а затем сохраните и закройте файл (CTRL-O, CTRL-X). Даже если теперь в файле указана валидная информация о БД, стоит попробовать подключиться к базе данных из командной строки, чтобы убедиться, что ошибка исчезла. Скопируйте из конфигурационного файла и вставьте данные в следующую команду:

mysqlshow -u database_username -p

Команда запросит пароль. Вставьте пароль и нажмите Enter. Если вы при этом получили ошибку Access denied, значит, вы указали неправильное имя пользователя или пароль.

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

Убедитесь, что в этом списке есть БД, указанная в конфигурации WordPress. Перезапустите сайт и убедитесь, что ошибка подключения к БД исчезла.

3: Восстановление базы данных WordPress

Иногда база данных WordPress может быть повреждена во время неудачного обновления, сбоя базы данных или из-за неправильного плагина. Эта проблема может отображаться как ошибка установки соединения с базой данных. Если проблему не удалось устранить с помощью предыдущих методов, попробуйте восстановить базу данных.

WordPress предоставляет встроенную утилиту для восстановления БД. По умолчанию она отключена (поскольку к ней нельзя ограничить доступ, а значит, она представляет угрозу безопасности сервера).

sudo nano /var/www/html/wp-config.php

Вставьте в файл такую строку:

Эта строка включает функцию восстановления БД.

Сохраните и закройте файл.

Откройте браузер и перейдите по следующему адресу:

На экране появится страница восстановления базы данных:

WordPress can automatically look for some common database problems and repair them. Repairing can take a while, so please be patient. […]

После этого снова откройте файл wp-config.php и удалите из него строку, которая включает поддержку утилиты восстановления БД.

Если утилита WordPress не обнаружила проблем с базой данных, значит, БД также не является источником ошибки соединения. Возможно, это какая-то временная ошибка.

В большинстве случаев ошибку установки соединения можно устранить при помощи предложенных выше методов. Однако иногда источником ошибки являются атаки или нехватка серверных ресурсов.

Часто источником повышенного трафика (а также низкой производительности и ошибок) являются brute-force атаки. Чтобы узнать, как смягчить атаки WordPress, читайте статью Защита WordPress от взлома XML-RPC в Ubuntu 14.04.

Чтобы сэкономить ресурсы сервера, настройте кэширование WordPress. Полезные инструкции вы найдёте в руководстве Настройка кэширования Redis для ускорения WordPress.

Читайте также: