C # Sql Строка подключения, пытаясь подключиться к локальной БД с другого компьютера - PullRequest
0 голосов
/ 31 августа 2018

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

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

Data Source=myComputerIP,1433;Network Library=DBMSSOCN; Initial 
Catalog=myDataBase;User ID=myUsername;Password=;

Я включил TCP / IP и запустил веб-браузер SQL в диспетчере конфигурации SQL Server, открыл порт 1433, SQL Server настроен для разрешения удаленных подключений. Я получаю сообщение об ошибке в C #

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

Я использую неверную строку подключения?

Мой вход в БД SQL Server: LOGIN CREDENTIALS

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

из прикрепленного PNG, похоже, вы используете SQLExpress. По умолчанию это не начинается на TCP-порту 1433. Проверьте порты в Configuration Manager-> Network Config-> ProtocolsFor ...-> щелкните правой кнопкой мыши TCP / IP, выберите properties и нажмите IP-адреса вкладка

Прокрутите вниз, чтобы установить для TCP-порта в разделе IpAll значение 1433, перезапустите SQL Server, а затем повторите попытку (или используйте порты, определенные в строке подключения)

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

Убедитесь, что ваш SQL Server настроен для смешанного режима: https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/change-server-authentication-mode?view=sql-server-2017

затем вы можете создать LOGIN (для сервера базы данных) и USER (для конкретной базы данных, к которой вы хотите, чтобы они обращались) через SSMS, или вы можете использовать этот скрипт:

-- Creates the login remoteuser with password 'Pa$$word11'.  
CREATE LOGIN remoteuser
    WITH PASSWORD = 'Pa$$word11';  
GO  

-- Creates a database user for the login created above.  
CREATE USER remoteuser FOR LOGIN remoteuser;  
GO 

--grant remoteuser 'datareader' rights
EXEC sp_addrolemember N'db_datareader', N'remoteuser';

--grant remoteuser 'datawriter' rights
EXEC sp_addrolemember N'db_datawriter', N'remoteuser';

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

Строка подключения будет выглядеть примерно так:

Data Source=192.168.0.55\SQLExpress;Database=MyDatabase;user=remoteuser;password=Pa$$word11
0 голосов
/ 31 августа 2018

Вы используете проверку подлинности Windows, поэтому необходимо также установить Integrated Security = true. Удалить идентификатор пользователя и пароль.

С Integrated Security = true, строка подключения получит учетные данные пользователя, который запускает приложение

...