Analizador de Sql y NTUserName

20/11/2003 - 13:41 por cdiaz | Informe spam
Estoy intentando hacer una traza sobre un Sql Server 2000 SP2.

El servidor está configurado con "Authentication" mixta. Corro una
aplicación que se conecta vía ODBC con un usuario SQL. Entiendo que es
normal que la columna de LoginName aparezca siempre el mismo usuario SQL.

Me gustaría observar la columna NTUserName para luego poder hacer
estadísticas sobre las conexiones de los usuarios. Sin embargo, no en todos
los casos aparece el NTUserName. Por ejemplo, con mi usuario de red lanzo
consultas que veo en el profiler pues la T-SQL responde a mi petición, y no
aparece nada en la columna de NTUserName. Sin embargo sí veo rellena esta
columna para otros usuarios aunque, dado que con el mío no aparece, no tengo
la seguridad de que esté correcto. ¿Se debe esto a algo? ¿Puedo solucionarlo
de alguna manera? ¿Hay otra opción para hacer estadísticas de los usuarios
NT que se conectan a la base de datos?

Gracias de antemano

Preguntas similare

Leer las respuestas

#6 cdiaz
21/11/2003 - 10:36 | Informe spam
Efectivamente. En el caso de mi ordenador (que es de desarrollo) tenía
habilitado los 2 protocolos (TCP/IP y Canalizaciones con nombre). En
sysprocesses aparecía como TCP/IP y no se veía mi nt_username.

Si quiero hacer estadísticas de las conexiones a una base de datos con un
usuario Sql pero quiero saber los usuarios nt que se conectan ¿cuál sería la
mejor opción? ¿Cómo trato el hecho de que algunos usuarios puedan tener
otros protocolos de red? ¿Consulto la sysprocesses en lugar de hacerlo con
una traza? ¿Alguna otra idea basada en vuestra experiencia?

Gracias de antemano.


"Miguel Egea" escribió en el mensaje
news:u%
Si es así, valida en master..sysprocesses si esa información aparece bien,


y
con que protocolo de red se están conectando.


Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores
"Accotto Maximiliano D." escribió en


el
mensaje news:
> Esos usuarios como se conectan? por medio de usuarios de SQL o Windows!!
>
> Si se conectan por medio de usuarios SQL esos campos no lo veras
>
> Digamos: Todos los clientes se conentan con el mismo tipo de
autentifiacion?
>
> Un saludo
>
> Maximiliano Damian Accotto
> "cdiaz" escribió en el mensaje
> news:
> > No me queda claro. Todos los usuarios se están conectando a través de
una
> > aplicación. Cada usuario tiene en su ordenador el ejecutable y sus


dlls.
> > ¿Por qué para unos usuarios aparece y no para otro?
> >
> > Gracias
> >
> > "ulises" escribió en el mensaje
> > news:00c301c3af7e$4ac80b30$
> > El campo nt_username (asi como el campo nt_domain) solo
> > llevan información cuando el modo como ha ingresado al SQL
> > es un "trusted connection", si ha ingresado con un usuario
> > SQL esos campos van vacíos.
> >
> > Saludos,
> > Ulises
> >
> > >Estoy intentando hacer una traza sobre un Sql Server 2000
> > SP2.
> > >
> > >El servidor está configurado con "Authentication" mixta.
> > Corro una
> > >aplicación que se conecta vía ODBC con un usuario SQL.
> > Entiendo que es
> > >normal que la columna de LoginName aparezca siempre el
> > mismo usuario SQL.
> > >
> > >Me gustaría observar la columna NTUserName para luego
> > poder hacer
> > >estadísticas sobre las conexiones de los usuarios. Sin
> > embargo, no en todos
> > >los casos aparece el NTUserName. Por ejemplo, con mi
> > usuario de red lanzo
> > >consultas que veo en el profiler pues la T-SQL responde a
> > mi petición, y no
> > >aparece nada en la columna de NTUserName. Sin embargo sí
> > veo rellena esta
> > >columna para otros usuarios aunque, dado que con el mío
> > no aparece, no tengo
> > >la seguridad de que esté correcto. ¿Se debe esto a algo?
> > ¿Puedo solucionarlo
> > >de alguna manera? ¿Hay otra opción para hacer
> > estadísticas de los usuarios
> > >NT que se conectan a la base de datos?
> > >
> > >Gracias de antemano
> >
> >
>
>


Respuesta Responder a este mensaje
#7 Miguel Egea
21/11/2003 - 11:37 | Informe spam
Yo cuando he querido hacer esto he metido código en las aplicaciones en
lugar de delegarlo a la base de datos, Cualquier consulta que hagas a la
base de datos se basará en un momento. No puedes reaccionar ante una
conexión nueva si no es con trazas incluso estas pueden decirte que están
muy ocupadas y no darte toda la información. Por otra parte una traza
sobrecarga el sistema, es un proceso de servidor y no creo que sea buena
idea tenerla permanentemente. En resumen lo que quieres, puede ser cualquier
cosa menos sencillo.
Si tienes acceso a las aplicaciones, haz que sean estas las que llamen a un
procedimiento almacenado para decir que se han conectado y basa en eso tus
estadísticas. Si usas approles, en portalsql.com tengo un articulo que
permite hacerlo
Otra cosa que entorpece el proyecto es el pool de conexiones, ya que si
quieres ver tiempo, el pool puede engañarte, aunque no lo quites, o verás
afectado el rendimiento.
Si yo tuviese que hacerlo lo haría en base a master..sysprocesses y a la
macaddress que se registra en esa tabla, y pondría una tarea programada con
la periodicidad que consideres aceptable. A partir de la mac, puedes con
herramientas como el panda invent ver el pc que se ha conectado.

Espero que todo esto te sirva para algo.

Saludos
miguel Egea


"cdiaz" escribió en el mensaje
news:
Efectivamente. En el caso de mi ordenador (que es de desarrollo) tenía
habilitado los 2 protocolos (TCP/IP y Canalizaciones con nombre). En
sysprocesses aparecía como TCP/IP y no se veía mi nt_username.

Si quiero hacer estadísticas de las conexiones a una base de datos con un
usuario Sql pero quiero saber los usuarios nt que se conectan ¿cuál sería


la
mejor opción? ¿Cómo trato el hecho de que algunos usuarios puedan tener
otros protocolos de red? ¿Consulto la sysprocesses en lugar de hacerlo con
una traza? ¿Alguna otra idea basada en vuestra experiencia?

Gracias de antemano.


"Miguel Egea" escribió en el mensaje
news:u%
> Si es así, valida en master..sysprocesses si esa información aparece


bien,
y
> con que protocolo de red se están conectando.
>
>
> Saludos
>
> Miguel Egea
> Microsoft SQL-SERVER MVP
> Brigada Anti-Cursores
> "Accotto Maximiliano D." escribió


en
el
> mensaje news:
> > Esos usuarios como se conectan? por medio de usuarios de SQL o


Windows!!
> >
> > Si se conectan por medio de usuarios SQL esos campos no lo veras
> >
> > Digamos: Todos los clientes se conentan con el mismo tipo de
> autentifiacion?
> >
> > Un saludo
> >
> > Maximiliano Damian Accotto
> > "cdiaz" escribió en el mensaje
> > news:
> > > No me queda claro. Todos los usuarios se están conectando a través


de
> una
> > > aplicación. Cada usuario tiene en su ordenador el ejecutable y sus
dlls.
> > > ¿Por qué para unos usuarios aparece y no para otro?
> > >
> > > Gracias
> > >
> > > "ulises" escribió en el mensaje
> > > news:00c301c3af7e$4ac80b30$
> > > El campo nt_username (asi como el campo nt_domain) solo
> > > llevan información cuando el modo como ha ingresado al SQL
> > > es un "trusted connection", si ha ingresado con un usuario
> > > SQL esos campos van vacíos.
> > >
> > > Saludos,
> > > Ulises
> > >
> > > >Estoy intentando hacer una traza sobre un Sql Server 2000
> > > SP2.
> > > >
> > > >El servidor está configurado con "Authentication" mixta.
> > > Corro una
> > > >aplicación que se conecta vía ODBC con un usuario SQL.
> > > Entiendo que es
> > > >normal que la columna de LoginName aparezca siempre el
> > > mismo usuario SQL.
> > > >
> > > >Me gustaría observar la columna NTUserName para luego
> > > poder hacer
> > > >estadísticas sobre las conexiones de los usuarios. Sin
> > > embargo, no en todos
> > > >los casos aparece el NTUserName. Por ejemplo, con mi
> > > usuario de red lanzo
> > > >consultas que veo en el profiler pues la T-SQL responde a
> > > mi petición, y no
> > > >aparece nada en la columna de NTUserName. Sin embargo sí
> > > veo rellena esta
> > > >columna para otros usuarios aunque, dado que con el mío
> > > no aparece, no tengo
> > > >la seguridad de que esté correcto. ¿Se debe esto a algo?
> > > ¿Puedo solucionarlo
> > > >de alguna manera? ¿Hay otra opción para hacer
> > > estadísticas de los usuarios
> > > >NT que se conectan a la base de datos?
> > > >
> > > >Gracias de antemano
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#8 cdiaz
21/11/2003 - 12:29 | Informe spam
Claro que me sirve. No puedo modificar la aplicación ya que es un producto
estándar en el que lo único que se puede hacer es parametrizar (no
desarrollar).

Sin embargo creo que es interesante saber las estadísticas de conexión a la
base de datos, por lo que seguiré buscando alguna opción y tus comentarios
me orientan.

Intentaré hacer algo parecido a
http://support.microsoft.com/defaul...-us;283696 aunque
todavía no me he leido con detalle este artículo.

Muchas gracias.

"Miguel Egea" escribió en el mensaje
news:%

Yo cuando he querido hacer esto he metido código en las aplicaciones en
lugar de delegarlo a la base de datos, Cualquier consulta que hagas a la
base de datos se basará en un momento. No puedes reaccionar ante una
conexión nueva si no es con trazas incluso estas pueden decirte que están
muy ocupadas y no darte toda la información. Por otra parte una traza
sobrecarga el sistema, es un proceso de servidor y no creo que sea buena
idea tenerla permanentemente. En resumen lo que quieres, puede ser


cualquier
cosa menos sencillo.
Si tienes acceso a las aplicaciones, haz que sean estas las que llamen a


un
procedimiento almacenado para decir que se han conectado y basa en eso tus
estadísticas. Si usas approles, en portalsql.com tengo un articulo que
permite hacerlo
Otra cosa que entorpece el proyecto es el pool de conexiones, ya que si
quieres ver tiempo, el pool puede engañarte, aunque no lo quites, o verás
afectado el rendimiento.
Si yo tuviese que hacerlo lo haría en base a master..sysprocesses y a la
macaddress que se registra en esa tabla, y pondría una tarea programada


con
la periodicidad que consideres aceptable. A partir de la mac, puedes con
herramientas como el panda invent ver el pc que se ha conectado.

Espero que todo esto te sirva para algo.

Saludos
miguel Egea


"cdiaz" escribió en el mensaje
news:
> Efectivamente. En el caso de mi ordenador (que es de desarrollo) tenía
> habilitado los 2 protocolos (TCP/IP y Canalizaciones con nombre). En
> sysprocesses aparecía como TCP/IP y no se veía mi nt_username.
>
> Si quiero hacer estadísticas de las conexiones a una base de datos con


un
> usuario Sql pero quiero saber los usuarios nt que se conectan ¿cuál


sería
la
> mejor opción? ¿Cómo trato el hecho de que algunos usuarios puedan tener
> otros protocolos de red? ¿Consulto la sysprocesses en lugar de hacerlo


con
> una traza? ¿Alguna otra idea basada en vuestra experiencia?
>
> Gracias de antemano.
>
>
> "Miguel Egea" escribió en el mensaje
> news:u%
> > Si es así, valida en master..sysprocesses si esa información aparece
bien,
> y
> > con que protocolo de red se están conectando.
> >
> >
> > Saludos
> >
> > Miguel Egea
> > Microsoft SQL-SERVER MVP
> > Brigada Anti-Cursores
> > "Accotto Maximiliano D." escribió
en
> el
> > mensaje news:
> > > Esos usuarios como se conectan? por medio de usuarios de SQL o
Windows!!
> > >
> > > Si se conectan por medio de usuarios SQL esos campos no lo veras
> > >
> > > Digamos: Todos los clientes se conentan con el mismo tipo de
> > autentifiacion?
> > >
> > > Un saludo
> > >
> > > Maximiliano Damian Accotto
> > > "cdiaz" escribió en el mensaje
> > > news:
> > > > No me queda claro. Todos los usuarios se están conectando a través
de
> > una
> > > > aplicación. Cada usuario tiene en su ordenador el ejecutable y sus
> dlls.
> > > > ¿Por qué para unos usuarios aparece y no para otro?
> > > >
> > > > Gracias
> > > >
> > > > "ulises" escribió en el mensaje
> > > > news:00c301c3af7e$4ac80b30$
> > > > El campo nt_username (asi como el campo nt_domain) solo
> > > > llevan información cuando el modo como ha ingresado al SQL
> > > > es un "trusted connection", si ha ingresado con un usuario
> > > > SQL esos campos van vacíos.
> > > >
> > > > Saludos,
> > > > Ulises
> > > >
> > > > >Estoy intentando hacer una traza sobre un Sql Server 2000
> > > > SP2.
> > > > >
> > > > >El servidor está configurado con "Authentication" mixta.
> > > > Corro una
> > > > >aplicación que se conecta vía ODBC con un usuario SQL.
> > > > Entiendo que es
> > > > >normal que la columna de LoginName aparezca siempre el
> > > > mismo usuario SQL.
> > > > >
> > > > >Me gustaría observar la columna NTUserName para luego
> > > > poder hacer
> > > > >estadísticas sobre las conexiones de los usuarios. Sin
> > > > embargo, no en todos
> > > > >los casos aparece el NTUserName. Por ejemplo, con mi
> > > > usuario de red lanzo
> > > > >consultas que veo en el profiler pues la T-SQL responde a
> > > > mi petición, y no
> > > > >aparece nada en la columna de NTUserName. Sin embargo sí
> > > > veo rellena esta
> > > > >columna para otros usuarios aunque, dado que con el mío
> > > > no aparece, no tengo
> > > > >la seguridad de que esté correcto. ¿Se debe esto a algo?
> > > > ¿Puedo solucionarlo
> > > > >de alguna manera? ¿Hay otra opción para hacer
> > > > estadísticas de los usuarios
> > > > >NT que se conectan a la base de datos?
> > > > >
> > > > >Gracias de antemano
> > > >
> > > >
> > >
> > >
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida