2009-06-09 11 views
7

En MS SQL Server, el cuadro de diálogo Propiedades de la base de datos tiene el enlace "Ver propiedades de conexión" a la izquierda. Al hacer clic aparece el cuadro de diálogo "Propiedades de conexión" con propiedades de la conexión actual, como Método de autenticación, Protocolo de red, Nombre del equipo, etc. ...Obteniendo las propiedades de conexión actuales en SQL Server

¿Hay alguna manera de obtener esa información programáticamente ejecutando una consulta sql? ¿Cómo sería esa consulta?

Respuesta

18

SQL 2005 y después de interrogar sys.dm_exec_connections. Para recuperar sus propiedades de conexión de corriente que había corrido:

select * from sys.dm_exec_connections 
where session_id = @@SPID 

valores El campo dependen del protocolo que se utiliza para conectar (memoria compartida, canalizaciones con nombre o TCP), pero todos contienen información sobre el método de autenticación utilizado, el protocolo y la red del cliente dirección.

+0

¿Qué ocurre con la cadena de conexión completa? –

+0

El permiso requiere más que el simple rol db_owner para una base de datos específica. – Zarepheth

0

Creo que la respuesta es 'no'. La información de la computadora se almacena en la computadora. Es probable que la información de conexión esté almacenada en un archivo de configuración o en el servidor MS SQL.

Pero eche un vistazo a MSSQL system tables y vea qué propiedades tienen.

4

Sí, puede, pero depende de qué propiedad está buscando, ya que los que se muestran en la interfaz de usuario de propiedades de conexión provienen de varios lugares.

Se utiliza varias consultas (como xp_msver y select suser_sname()) para apoderarse de algunas propiedades, pero también utiliza el xp_instance_regread procedimiento almacenado para conseguir un poco de los valores del registro del servidor.

Casi todo lo que se hace es que el estudio de gestión cuando se interactúa con el motor SQL se puede hacer mediante SQL. Iniciar una sesión de generador de perfiles y realizar las acciones en la interfaz de usuario revelará qué SQL (a veces oscuro/no documentado/no compatible) se está ejecutando.

Cuestiones relacionadas