Los Triggers de Login son procedimientos almacenados que se disparan al momento en que un usuario se conecta exitosamente a Adaptive Server Enterprise. Esta característica está disponible desde la versión 12.5 y hay más información en éste documento.

Para crear un trigger de login que registre en una tabla los datos del usuario al conectarse, siga estos pasos (estos pasos deben ser llevados a cabo por un login con rol SA):

  1. Cree una tabla en donde se registrarán los datos de los usuarios que se conectan; por ejemplo:
use base_de_datos
go
create table tabla_login(
login varchar(30),
hostname varchar(30),
program_name varchar(30),
ipaddr varchar(30),
fecha datetime)
lock datarows
go
  1. Cree el procedimiento de login; por ejemplo:
use base_de_datos
go
create procedure proc_login
as
insert into tabla_login
select suser_name(), hostname, program_name, ipaddr, getdate()
from master..sysprocesses
where @@spid = spid
return 0
go
grant exec on proc_login to public
go
  1. Defina el trigger de login para los logins. Para cada login, ejecute el siguiente comando:
exec sp_modifylogin login_name, "login script", "base_de_datos..proc_login"
go

donde login_name es un login válido de Adaptive Server Enterprise y base_de_datos es la base de datos donde se crearon la tabla y el procedimiento.

Recuerde también que login_name debe ser usuario válido de la base de datos base_de_datos.

Usted debe repetir éste paso para cada login del cual usted desea registrar los datos en la tabla tabla_login.

Una vez se han completado los pasos anteriores y en la medida en que los usuarios se conectan, su información quedará registrada en la tabla tabla_login. Por ejemplo:

select * from base_de_datos..tabla_login
go

login hostname program_name ipaddr fecha
----- -------- ------------ ------ ---------
jperez DESA01 isql 192.9.202.32 May 2 2005 12:23PM
adiaz DESA05 isql 192.9.202.132 May 2 2005 12:25PM
adiaz DESA05 SQL_Advantage 192.9.202.132 May 2 2005 12:26PM
egomez PRD110 SQL_Advantage 192.9.202.36 May 2 2005 12:32PM
jperez DESA01 SC_ASEJ_Mgmt 192.9.202.32 May 2 2005 12:33PM

Recuerde limpiar la tabla tabla_login periódicamente para evitar que el segmento de datos en donde fue creada se llene. Así mismo, recuerde que toda nueva fila en la tabla_login tambien quedará registrada en el log de transacciones, haciendo que éste crezca más de lo normal.

You are not authorised to post comments.

Comments powered by CComment

DBASupport - Foro

Mirroring con estados disconnected
Hola, el día de hoy después de reiniciar mi servidor de destino a donde realizo el mirroring ya no pude replicar más, el error que muestra es que...

Se me duplica el mensaje en /etc/motd
  • Topic started by agamez
  • in General
  • 2 years ago.
  • 2 years ago.
  • 2 replies
Buen día, alguien tiene idea porque después de actualizar a fedora 28 se me esta duplicando la salida de mi /etc/motd?

Cómo puedo filtrar un mensaje en el log messages
Buenos días, estoy recibiendo en mi log de errores muchos mensajes de cron, ya que tengo varios crones configurados en mi server. Existe alguna...

Cómo validar la hora de ejecución de un proceso
Hola, estoy tratando de validar que un proceso sólo pueda ser ejecutado dentro de un periodo de tiempo, en este caso entre las 7:00 AM y las 7:00...

Estadisticas en la base de datos
Buenos días, estoy teniendo problemas de performance en mis queries y quisiera saber como puedo validar que mis tablas tienen las estadisticas...
URGE AYUDA
  • Topic started by
  • in General
  • 15 years ago.
  • 15 years ago.
  • 30 replies
HOLA ESPERO ME PUEDAN AYUDAR. TEN GO UNA TABLA CON una estructura similar a la siguiente: id_mov cargo subtotal total...

Duada de Memoria de SQL Server 2005
  • Topic started by Erzengel
  • in General
  • 10 years ago.
  • 10 years ago.
  • 30 replies
Buen Día Recurro nuevamente a su sabiduría. Quiero saber el porque tiene un tope SQL Serever de 2GB en Windows server 2003 de 32 bit y si alguien...

SqlDateTime overflow
  • Topic started by
  • in General
  • 14 years ago.
  • 14 years ago.
  • 11 replies
Alguno de ustedes ha tenido este problema: SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.' Les...

problemas para iniciar el agente sql
  • Topic started by acgch
  • in General
  • 13 years ago.
  • 13 years ago.
  • 11 replies
Recientemente para asegurar el sql server 2005, cree una cuenta sql con derechos de sysadmin y borre el grupo BUILTIN\Administradores para evitar...

Problemas para levantar mirror
  • Topic started by acgch
  • in General
  • 13 years ago.
  • 13 years ago.
  • 16 replies
Hola amigos, tengan un buen día, les comento que estoy configurando mirror siguiendo los pasos a través del wizard del managment studio y también...
Mirroring con estados disconnected
Hola, el día de hoy después de reiniciar mi servidor de destino a donde realizo el mirroring ya no pude replicar más, el error que muestra es que...

Se me duplica el mensaje en /etc/motd
  • Topic started by agamez
  • in General
  • 2 years ago.
  • 2 years ago.
  • 2 replies
Buen día, alguien tiene idea porque después de actualizar a fedora 28 se me esta duplicando la salida de mi /etc/motd?

Cómo puedo filtrar un mensaje en el log messages
Buenos días, estoy recibiendo en mi log de errores muchos mensajes de cron, ya que tengo varios crones configurados en mi server. Existe alguna...

Cómo validar la hora de ejecución de un proceso
Hola, estoy tratando de validar que un proceso sólo pueda ser ejecutado dentro de un periodo de tiempo, en este caso entre las 7:00 AM y las 7:00...

Estadisticas en la base de datos
Buenos días, estoy teniendo problemas de performance en mis queries y quisiera saber como puedo validar que mis tablas tienen las estadisticas...
Deshabilitar todos los jobs
  • Topic started by agamez
  • in Jobs
  • 3 years ago.
  • 3 years ago.
  • 1 reply
Buenos días, alguien sabe como puedo deshabilitar rapidamente todos los jobs de SQL Server, gracias.

Mirroring con estados disconnected
Hola, el día de hoy después de reiniciar mi servidor de destino a donde realizo el mirroring ya no pude replicar más, el error que muestra es que...

Se me duplica el mensaje en /etc/motd
  • Topic started by agamez
  • in General
  • 2 years ago.
  • 2 years ago.
  • 2 replies
Buen día, alguien tiene idea porque después de actualizar a fedora 28 se me esta duplicando la salida de mi /etc/motd?

Cómo puedo filtrar un mensaje en el log messages
Buenos días, estoy recibiendo en mi log de errores muchos mensajes de cron, ya que tengo varios crones configurados en mi server. Existe alguna...

Cómo validar la hora de ejecución de un proceso
Hola, estoy tratando de validar que un proceso sólo pueda ser ejecutado dentro de un periodo de tiempo, en este caso entre las 7:00 AM y las 7:00...