Frankie-10589807 Ответов: 3

Удаленное подключение к базе данных SQL


Доброго вам всем дня. Я пытаюсь подключиться к удаленной базе данных sqlserver через приложение windows form. Но единственная альтернатива, которую я продолжаю получать, - это следующая строка соединения, которую я хочу знать, насколько она безопасна:

"Источник данных=190.190.168.100,1433;сетевая библиотека=DBMSSOCN;начальный каталог=данных mydatabase;идентификатор пользователя=имя_пользователя;пароль=мойпароль;"

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

Удаленный сервер работает под управлением windows server 2012, а база данных-sql2014.


Любая помощь в этом будет оценена по достоинству.

Заранее спасибо
Откровенный.

Что я уже пробовал:

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

"Источник данных=NEPTUNSERVER\NTSERVER;начальный каталог=ITEM_MGR; Интегрированная безопасность =True"

3 Ответов

Рейтинг:
1

FranzBe

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

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

 IF NOT EXISTS (SELECT * FROM master.dbo.syslogins WHERE loginname = N'yourUserName')
BEGIN
    CREATE LOGIN [yourUserName] WITH PASSWORD=N'yourPassword'
   ,DEFAULT_DATABASE=[yourDataBaseName]
   ,CHECK_EXPIRATION=OFF
   ,CHECK_POLICY=OFF
END


IF NOT EXISTS (
		SELECT *
		FROM dbo.sysusers
		WHERE NAME = N'yourUserName'
			AND uid < 16382
		)
	EXEC sp_grantdbaccess N'yourUserName'	,N'yourUserName'


 
SELECT 'GRANT SELECT,INSERT,UPDATE,DELETE ON ' + a.table_name + ' TO yourUserName'
FROM (
	SELECT DISTINCT table_name
	FROM information_schema.columns
	WHERE table_name LIKE '%yourSearchToken%'
	) a

-- check, edit the resulting list and execute it


Рейтинг:
1

Frankie-10589807

Большое вам спасибо, Мистер Франц, хотя я еще не пробовал это решение, но у меня все время возникает ощущение, что я должен использовать ip-адрес сервера, чтобы иметь возможность установить соединение через интернет с приложением. Однако даже в том же домене соединение с IP-адресом не выполняется, если только я не использую имя сервера и не указано выше. Я снова пытаюсь обратиться за помощью к DBA, чтобы посмотреть, как это будет происходить. Какое решение это работает, я выложу на этой платформе.

Еще раз спасибо, Мистер Франц.


Рейтинг:
0

Subodh_Bhatkar

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

SQLCONNSTR = "Data Source= 192.168.1.1 ;Initial Catalog=DAName;User ID=Test & ";pwd=Test;"


И убедитесь, что SQL server настроен на получение соединения через TCPIP


Frankie-10589807

Большое тебе спасибо, Субодх. Я вернусь к вам.

Откровенный