Ошибка подключения к базе данных SQL Server 2012 Express + node.js

Я получаю сообщение «Ошибка подключения к базе данных» при попытке использовать драйвер Node.JS для SQL и пример из: http://blogs.msdn.com/b/sqlphp/archive/2012/06/08./introduction-the-microsoft-driver-for-node-js-for-sql-server.aspx

Строка, которую я использую для SQL Server Express 11.0, 64-разрядная, локальная

var conn_str = "Driver={SQL Server Native Client 11.0};Server=(local);Database=MyDB;Trusted_Connection={Yes}"; 

Я также пробовал «sa» и другого локального пользователя против проверки подлинности Windows — все безуспешно.

Работает узел 0.6.10 (версия, поддерживаемая драйвером SQL), конфигурация SQL Server показывает SQL Native Client 11, поэтому версии совпадают.

Есть ли способы устранения неполадок?? Любые руководства / учебные пособия, в которых соединение было успешным для моего стека?


person NikG    schedule 03.07.2012    source источник


Ответы (2)


РЕШЕНО:

Я пытался неправильно получить доступ к именованному экземпляру SQL Express. Должно быть .\\SQLEXPRESS, а не (локальное) или .\SQLEXPRESS.

Правильная строка:

 var conn_str = "Driver={SQL Server Native Client 11.0};Server=.\\SQLEXPRESS;Database=NPv1;Trusted_Connection=Yes";
person NikG    schedule 04.07.2012

Доверенное соединение указывает соединению использовать идентификатор Windows процесса. Если вы размещаете это в IIS, этот идентификатор будет тем, который использует пул приложений. Убедитесь, что этот идентификатор имеет доступ как к серверу базы данных, так и к базе данных. Использование sa и других локальных пользователей не решит проблему, если вы не скажете ему не использовать доверенное соединение, а затем не укажете идентификатор пользователя и пароль в строке подключения (кстати, этот подход не рекомендуется; придерживайтесь доверенного соединения, если вы могу).

person Jeff Siver    schedule 03.07.2012
comment
Спасибо за предложение. Я использую Node.js и запускаю командную строку - person NikG; 03.07.2012
comment
Извините, пропустил эту часть. Вы по-прежнему можете использовать доверенное соединение; изменить пользователя Windows, принимающего приглашение командной строки. Или, что еще лучше, используйте Powershell и запустите его с определенными учетными данными. - person Jeff Siver; 03.07.2012
comment
Что вы имеете в виду под изменением пользователя Windows - поскольку мой пользователь является администратором, в чем проблема с командной строкой, запускаемой моим пользователем? - person NikG; 04.07.2012
comment
Если вы работаете в качестве локального администратора, проблем не возникает, если вы не изменили разрешения по умолчанию для SQL Server. Но для развертывания вы не должны на самом деле давать пользователю права администратора сайта. - person Jeff Siver; 04.07.2012