Sidebar

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.

Tips BD