Почему я не могу подключиться к общему экземпляру SQL Server 2012 LocalDB?

Я пытаюсь настроить общий экземпляр SQL Server 2012 LocalDB (RTM, x64) на моей машине с Windows 7 x64, и я не могу подключиться к общему экземпляру. Я использую командную строку администратора для всех настроек. Вот как я создаю экземпляр:

sqllocaldb create MyInstance 

Что дает ответ:

 LocalDB instance "MyInstance" created with version 11.0. 

Все идет нормально. Теперь я передаю экземпляр:

 sqllocaldb share "MyInstance" "MySharedInstance" 

Результат:

 Private LocalDB instance "MyInstance" shared with the shared name: "MySharedInstance". 

Все еще выглядит хорошо. На этом этапе команда info дает:

 .\MySharedInstance MyInstance v11.0 

Подключение к экземпляру из учетной записи владельца (которая является администратором) с использованием командной строки admin или non-admin работает нормально. Все происходит со следов, хотя, когда я вхожу в систему как обычный пользователь (а не администратор Windows) и пытаюсь подключиться:

 sqlcmd -S (localdb)\.\MySharedInstance 

результаты:

 Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : Named Pipes Provider: Could not open a connection to SQL Server [2]. . Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : Login timeout expired. Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.. 

Увеличение таймаута входа с помощью переключателя «-l» не помогает. Я могу подключиться к экземпляру по умолчанию v11.0, который не является общим. Команда info для пользователя, не являющегося администратором, дает то же самое, что и выше, кроме как «MyInstance», поскольку он является именованным экземпляром, принадлежащим пользователю admin. Следующая команда (которая работает для владельца / владельца admin):

 sqllocaldb info ".\MySharedInstance" 

также приводит к ошибке:

 Windows API call "FileTimeToSystemTime" returned error code: -2147024809. 

Поэтому возникает вопрос, почему мой пользователь, не являющийся администратором, не может подключиться к моему общему экземпляру? Похоже, что это превзошло все цели общих дел. И что с командой «sqllocaldb info» выдает ошибку при попытке запроса об общем экземпляре?

ДРУГОЕ ИЗМЕНЕНИЕ

Cory, если у вас установлены предыдущие версии SQL Server (например, 2008), то есть версия sqlcmd вы используете. Чтобы подключиться к LocalDb, вам необходимо использовать SQL Server 2012 версию sqlcmd . Поэтому ваши инструкции для ваших пользователей должны гарантировать, что они используют версию SQL Server 2012, запустив:

C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqlcmd -S "(localdb)\.\InstanceName"

Это сработало для меня. Я не проверял, доступен ли этот путь и версия sqlcmd для пользователей, которые установили sqllocaldb.msi. Извините, но у меня нет готовых машин без установки SQL Server 2012 (или только с установленными ранее версиями), чтобы полностью изучить это. Но, пожалуйста, дайте мне знать, если явное обращение к 110-й версии sqlcmd делает трюк.

Я думаю, вы также можете дать указание пользователям изменить свои системные переменные, чтобы первые версии были первыми (что ИМХО должно быть в этом случае автоматически).

FileTimeToSystemTime был подтвержден как ошибка одного из сотрудников Krzysztof. Таким образом, до сих пор нет исправления, которое я знаю для не-владельцев для подключения через sqllocaldb . Но я показал, что sqlcmd и sqlcmd могут работать, поэтому я надеюсь, что вы приблизитесь к запуску.

РЕДАКТИРОВАТЬ

Вам нужно добавить в экземпляр любых пользователей, не являющихся владельцами, например CREATE LOGIN [MyDomain\OtherUser] FROM WINDOWS; и любые соответствующие разрешения. В моей тестовой логике произошел сбой и возникла ошибка сообщения об ошибке (сообщение об ошибке «FileTimeToSystemTime» является ошибкой). Вы также должны использовать GRANT CONNECT . Как только вы это сделаете, вы сможете подключиться от второго пользователя с помощью Management Studio с этим соединением (единственное, что я пробовал):

 (localdb)\.\MySharedInstance 

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

 sqlcmd -S "(localdb)\.\MySharedInstance" sqlcmd -S ".\MySharedInstance" sqlcmd -S "(localdb)\MySharedInstance" sqlcmd -S "GREENHORNET\MySharedInstance" sqlcmd -S ".\LOCALDB#SH04FF8A" sqlcmd -S "GREENHORNET\LOCALDB#SH04FF8A" 

Весь доход:

HResult 0xFFFFFFFF, уровень 16, состояние 1 Сетевые интерфейсы SQL Server:

Ошибка определения местонахождения сервера / экземпляра [xFFFFFFFF].

Sqlcmd: ошибка: собственный клиент Microsoft SQL Server 10.0: при установлении соединения с SQL Server произошла связанная с сетью или конкретная ошибка экземпляра. Сервер не найден или недоступен. Проверьте правильность имени экземпляра и если SQL Server настроен на разрешение удаленных подключений. Дополнительные сведения см. В электронной документации по SQL Server ..

Sqlcmd: ошибка: собственный клиент Microsoft SQL Server 10.0: время ожидания входа истекло.

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

А что касается sqllocaldb exe, как это следует за любой логикой? Я могу видеть, что экземпляр есть через info , я получаю сообщение об ошибке, когда пытаюсь остановить его, я получаю сообщение о том, что он [уже] запущен, когда я пытаюсь запустить его, но я не могу подключиться к нему?

введите описание изображения здесь

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


Что касается обновления 4.0.2, от http://connect.microsoft.com/SQLServer/feedback/details/723737/smo-cant-connect-to-localdb-instances :

Мы приняли явное решение не включать .NET Framework 4.0.2 в установщик LocalDB. Установка обновления .NET Framework увеличит размер установщика LocalDB и вызовет вероятную перезагрузку. Поскольку LocalDB построен независимо от .NET, мы не думали, что мы должны брать эту стоимость за каждую установку LocalDB. Будущие версии .NET (включая .NET 4.5, теперь в CTP) будут поддерживать LocalDB из коробки. Некоторые разработчики также могут захотеть выбрать ODBC, PHP Driver / PDO и, возможно, JDBC в будущем. Эти разработчики не будут заинтересованы в обновлении .NET.

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

Подключение к экземпляру LocalDB через именованный канал

ЭТО ОТВЕТ ПРЕДУПРЕЖДЕНИЕ УДАЛЕНИЕ ИНСТАНЦИИ ОК.
т.е.: все ваши данные исчезнут, и все в порядке.

У меня была такая же проблема после обновления моего SSMS.

 sqllocaldb i .\MyCustomInstance sqllocaldb d LocalDb instance ".\MyCustomInstance" does not exist! sqllocaldb i .\MyCustomInstance Windows API call "FileTimeToSystemTime" returned error code: -2147024809. 

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

 sqllocaldb c MyCustomInstance LocalDB instance "MyCustomInstance" created with version 11.0. sqllocaldb d .\MyCustomInstance LocalDB instance ".\Octopus" deleted. 

Затем запустите экземпляр и поделитесь им. Сначала вы начинаете экземпляр.

 sqllocaldb s MyCustomInstance LocalDB instance "MyCustomInstance" started. sqllocaldb h MyCustomInstance MyCustomInstance Private LocalDB instance "MyCustomInstance" shared with the shared name: "MyCustomInstance". 

Теперь, когда вам нужно подключиться, вы связываетесь с (localdb)\.\MyCustomInstance

Проблема в том, что вам нужно указать имя db:

 sqlcmd -S "(localdb)\.\MySharedInstance" 
  • SQL Server Express 2008 R2 для использования в производстве на Amazon EC2 Micro Instance
  • SQL Server (SQLEXPRESS) и агент SQL Server (SQLEXPRESS)
  • Развертывание проекта базы данных для SQL Server 2008 Express
  • могу ли я использовать SSDT / BIDS / SSIS с помощью SQL Server 2012 Express?
  • Почему я получаю «Попытка подключить аутоиммунную базу данных для файла ...» исключение
  • SQL Server Management Studio - добавление / перемещение столбцов требует сброса и повторного создания?
  • Конфигурация SQLStart ASP.Net
  • SqlServer 08: запрос для отображения всех баз данных в экземпляре?
  • Ошибка экземпляров пользователя SQL Server: существующие базы данных достигли максимально допустимого числа
  • Запрос (SQL Server 2008 Express) работает в SQL Server Management Studio, но не в Delphi с использованием ADODB
  • Как определить имя экземпляра LocalDb в сценарии SQL?
  • Interesting Posts

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

    Ошибка: связать XSD с столбцом типа данных XML – «Невозможно создать строку размера»

    Реализовать пессимистическую блокировку

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

    Разделить строки с датой в SQL Server 2014

    Моделирование «много-к-одному» с ограничениями?

    Обновление одного столбца в триггере после обновления только определенного столбца в той же таблице в SQL Server 2008

    Родительский иерархический путь без использования CTE

    Можно ли сообщить SSMS не проверять, существует ли столбец в сценарии t-sql?

    Получить структуру таблиц UDT в VB.NET

    SQL 2008 R2 GROUP BY YEAR / MONTH Ошибка

    Пропустить SQL-вход как параметр

    Многочисленные соединения Sql Server с агрегатом

    схема и база данных на сервере sql

    Нулевые значения обновления запроса T-SQL

    Давайте будем гением компьютера.