Как проверить соединение SqlServer без открытия базы данных - PullRequest
5 голосов
/ 30 сентября 2008

Название в значительной степени говорит само за себя. Я хочу создать SqlConnection, а затем проверить это соединение, не открывая базу данных, потому что на данный момент я еще не знаю, где я буду подключаться. Возможно ли это сделать? У класса SqlConnection есть член 'Open', который пытается открыть базу данных, которую вы установили в свойстве Database, и, если вы ее не установили, SqlServer пытается с главной базой данных. Дело в том, что пользователь, с которым я пытаюсь подключиться (MACHINE \ ASPNET), имеет доступ к некоторым базам данных (которые я пока не знаю), а не к главной базе данных.

С уважением, Seba

Ответы [ 5 ]

10 голосов
/ 01 октября 2008

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

2 голосов
/ 30 сентября 2008

Я не уверен, что это то, что вам нужно.

Проверьте, есть ли у пользователя доступ к базе данных в Sql Server 2005

SELECT HAS_DBACCESS('Northwind');

HAS_DBACCESS возвращает информацию о том, имеет ли пользователь доступ к указанной базе данных (BOL).

Найти все базы данных, к которым у текущего пользователя есть доступ

SELECT [Name] as DatabaseName from master.dbo.sysdatabases
WHERE ISNULL(HAS_DBACCESS ([Name]),0)=1
ORDER BY [Name]
1 голос
/ 01 октября 2008

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

0 голосов
/ 26 ноября 2011

Я не знаю, получили ли вы свои ответы, но так как мы все ищем здесь ответы, я надеюсь, что это то, что вы искали

dim con as new sqlconnection
con.connectionstring="<<put your conn string here>>"
'try...catch block fires exception if the con is not successfully opened
try
con.open()
catch ex as exception
msgbox ex.message
end try
0 голосов
/ 30 сентября 2008

Просто любопытно ... Какую информацию вы сможете проверить, если не знаете точную базу данных, к которой вам нужно подключиться? Многие вещи, которые могут пойти не так с «настоящей» базой данных, были бы непроверяемыми из такого рода тестовых соединений, например, подключение или безопасность.

...