Einzelnen Beitrag anzeigen

Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
646 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Angemeldete Benutzer Firebird 3

  Alt 19. Jun 2019, 23:03
Du kannst dir mit sehr wenig Aufwand so was selber einbauen, wenn du das
mit Database Trigger umsetzt (musst du theoretisch auch nicht löschen,
dann aber aufpassen, weil nach dem letzten abgemeldeten user die
current_connection wieder bei 1 anfängt)



Code:
/******************************************************************************/
/****        Generated by IBExpert 2019.4.14.1 19.06.2019 23:59:54         ****/
/******************************************************************************/

/******************************************************************************/
/****                                Tables                               ****/
/******************************************************************************/



CREATE TABLE USR (
    ID  BIGINT NOT NULL,
    USR VARCHAR(31) CHARACTER SET NONE,
    TS  TIMESTAMP default current_timestamp
);




/******************************************************************************/
/****                             Primary keys                            ****/
/******************************************************************************/

ALTER TABLE USR ADD PRIMARY KEY (ID);


/******************************************************************************/
/****                               Triggers                              ****/
/******************************************************************************/



/******************************************************************************/
/****                       Database event triggers                       ****/
/******************************************************************************/



/* Trigger: USRCONNECT */
CREATE OR ALTER TRIGGER USRCONNECT
ACTIVE ON CONNECT POSITION 0
AS
begin
  insert into usr (id, usr, ts) values (current_connection, current_user, current_timestamp);
end;


/* Trigger: USRDISCONNECT */
CREATE OR ALTER TRIGGER USRDISCONNECT
ACTIVE ON DISCONNECT POSITION 0
AS
begin
  execute statement ('delete from usr where id=:id')(id:=current_connection) with autonomous transaction;
end;


/******************************************************************************/
/****                              Privileges                             ****/
/******************************************************************************/


/* Privileges of users */
GRANT ALL ON USR TO PUBLIC;


/******************************************************************************/
/****                            DDL privileges                           ****/
/******************************************************************************/
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
IBExpert and Firebird Power Workshops jederzeit auch als Firmenschulung
  Mit Zitat antworten Zitat