Identificativo de conexión único

21/01/2004 - 13:58 por Xabi | Informe spam
Hola gente, tengo una app q ataca mi SqlServer 7 con las mismas credenciales
para todos (mismo usuario, etc), es decir, todos atacan a la base de datos
con el mismo nombre de usuario (seguridad no integrada).

Mi propisito es q a traves de triggers y defaults's pueda registrar el
ultimo usuario q ha modificado una tabla. Como no puedo diferenciar desde el
Sql el usuario he pensado q en cualquier otro dato proporcionado por el Sql
q me sirva como un id de conexión unico. Ese dato lo podria capturar desde
mi app una ves inicializada la conexión para registrarlo junto al usuario
del sistema, host, etc.

La cuestión es si existe algun dato q el sql server genere de forma única
para cada conexión establecida desde una app.

Muchas gracias

Xabi

Preguntas similare

Leer las respuestas

#1 Eladio Rincón
21/01/2004 - 15:13 | Informe spam
Hola,

la función host_name() te devuelve la máquina desde la que conectas,
sp_who2 devuelve el hostname de la conexión, Podrías crear trazas de
profiler para monitorizar los cambios de las tablas (DDLs); en la página de
Miguel Egea tienes un ejemplo de cómo crear trazas de profiler desde el
analizador de consultas;

Con Yukon se simplificará mucho este tipo de auditorías porque se introducen
TRIGGERS por sentecias DDL :-))

Saludos,
Eladio Rincón


"Xabi" escribió en el mensaje
news:zHuPb.3702$
Hola gente, tengo una app q ataca mi SqlServer 7 con las mismas


credenciales
para todos (mismo usuario, etc), es decir, todos atacan a la base de datos
con el mismo nombre de usuario (seguridad no integrada).

Mi propisito es q a traves de triggers y defaults's pueda registrar el
ultimo usuario q ha modificado una tabla. Como no puedo diferenciar desde


el
Sql el usuario he pensado q en cualquier otro dato proporcionado por el


Sql
q me sirva como un id de conexión unico. Ese dato lo podria capturar desde
mi app una ves inicializada la conexión para registrarlo junto al usuario
del sistema, host, etc.

La cuestión es si existe algun dato q el sql server genere de forma única
para cada conexión establecida desde una app.

Muchas gracias

Xabi


Respuesta Responder a este mensaje
#2 Adrian Garcia
22/01/2004 - 07:53 | Informe spam
Hola Xabi,
Existe un area de memoria especial dedicada a cada sesion. Esta area se llam
informacion de contexto y tiene un tamaño de hasta 128 bytes.
La forma de asignar un valor a esta area es la siguiente:

DECLARE @info varbinary(128)
SET @info = CONVERT(varbinary,'pepe')
SET CONTEXT_INFO @info

Esto lo que hace es guardar la palabra "pepe" dentro de esta area. Este
codigo T-SQL lo deberias ejecutar cada vez que un usuario se conecta a SQL
Server.

Luego, para obtener el valor nuevamente este es el select que deberias
ejecutar

DECLARE @nombre VARCHAR(128)

SELECT @nombre=CONVERT(varchar,context_info)
FROM master.dbo.sysprocesses
WHERE spid = @@SPID

En la variable @nombre obtienes nuevamente a "pepe"

Espero que esto era lo que buscabas.
Saludos
Adrian D. Garcia
NDSoft


"Xabi" wrote in message
news:zHuPb.3702$
Hola gente, tengo una app q ataca mi SqlServer 7 con las mismas


credenciales
para todos (mismo usuario, etc), es decir, todos atacan a la base de datos
con el mismo nombre de usuario (seguridad no integrada).

Mi propisito es q a traves de triggers y defaults's pueda registrar el
ultimo usuario q ha modificado una tabla. Como no puedo diferenciar desde


el
Sql el usuario he pensado q en cualquier otro dato proporcionado por el


Sql
q me sirva como un id de conexión unico. Ese dato lo podria capturar desde
mi app una ves inicializada la conexión para registrarlo junto al usuario
del sistema, host, etc.

La cuestión es si existe algun dato q el sql server genere de forma única
para cada conexión establecida desde una app.

Muchas gracias

Xabi


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