2008-09-30 7 views
5

El título casi lo dice todo. Quiero crear un SqlConnection y luego verificar esa conexión sin abrir una base de datos, porque en ese punto aún no sé a dónde me conectaré. ¿Es posible hacer eso? La clase SqlConnection tiene un miembro 'Abrir' que intenta abrir la base de datos que establecería en la propiedad de la Base de datos, y si no configuró uno, SqlServer lo intenta con el maestro db. El problema es que el usuario con el que trato de conectarme (MACHINE \ ASPNET) tiene acceso a algunas bases de datos (que aún no conozco) y no al maestro db.Cómo probar la conexión SqlServer sin abrir una base de datos

Saludos, Seba

+0

lo tanto, si he entendido bien, está tratando de obtener la lista de bases de datos para los que el usuario tiene acceso a la Red PEA? –

Respuesta

10

Conectar a temp db. Todo el mundo tiene acceso a tempdb, por lo que podrás autenticarte para acceder. Más tarde, cuando conozca la base de datos real, puede cambiar esta propiedad para conectarse a la base de datos que desee.

0

Sólo por curiosidad ... ¿Qué información va a ser capaz de verificar si usted no sabe la base de datos precisa que necesita para conectarse a? Muchas cosas que podrían salir mal con la base de datos "real" no podrían ser evaluadas desde este tipo de conexión de prueba, como la conectividad o la seguridad.

+0

bueno ... solo quiero saber si el usuario puede autenticarse contra SqlServer, por lo tanto, es un servidor válido y un inicio de sesión válido en ese servidor ... Supongo que la respuesta es NO, no puedes – sebagomez

2

No estoy seguro de si esto es lo que necesita.

Check if a user has access to a database in Sql Server 2005

SELECT HAS_DBACCESS('Northwind'); 

HAS_DBACCESS devuelve información acerca de si el usuario tiene acceso a la base de datos especificada (BOL).

Buscar Todos bases de datos que el usuario actual tiene acceso a

SELECT [Name] as DatabaseName from master.dbo.sysdatabases 
WHERE ISNULL(HAS_DBACCESS ([Name]),0)=1 
ORDER BY [Name] 
+0

eso no es lo que necesitaba pero gracias – sebagomez

1

Si lo que necesita saber si el servicio está activo, usted podría tratar de connet través de un enchufe en el puerto, para ver si está abierto

-1

No sé si usted consiguió sus respuestas, sino como todos buscamos aquí para las respuestas espero que esto es lo que estabas buscando

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

No creo que hayas entendido la pregunta ... ese es exactamente mi punto y la respuesta de Lerning es la clave de mi problema 'Todo el mundo ha accedido a tempdb' – sebagomez

Cuestiones relacionadas