Triggers 在sql Anywhere 16中的SYSUSER表上创建触发器

Triggers 在sql Anywhere 16中的SYSUSER表上创建触发器,triggers,sybase,sqlanywhere,Triggers,Sybase,Sqlanywhere,我想调用一个特定的过程,该过程记录每次在数据库中创建或删除数据库用户的情况(sql Anywhere 16)。 为此,我编写了一个函数,当从表SYS.SYSUSER插入或删除行时,应该通过触发器调用该函数 但是,我无法在此表上创建触发器。 是否允许我在此基础上创建触发器,或者是否有其他方式在为db创建或删除用户时获得通知 sybase新手,请帮助 这是我的创建触发器代码 CREATE TRIGGER myTrigger AFTER INSERT ON sys.sysuser REFERENCIN

我想调用一个特定的过程,该过程记录每次在数据库中创建或删除数据库用户的情况(sql Anywhere 16)。 为此,我编写了一个函数,当从表SYS.SYSUSER插入或删除行时,应该通过触发器调用该函数

但是,我无法在此表上创建触发器。 是否允许我在此基础上创建触发器,或者是否有其他方式在为db创建或删除用户时获得通知

sybase新手,请帮助

这是我的创建触发器代码

CREATE TRIGGER myTrigger AFTER INSERT ON sys.sysuser
REFERENCING NEW AS newRecord
FOR EACH ROW 
BEGIN 
      -- 
END;

不能在系统表上创建触发器。您可以为“系统事件”创建一个处理程序,如联机中所述。不幸的是,创建或删除用户不是可以处理的系统事件。我不相信没有一种方法能让你做你想做的事


充分披露:我在SQL Anywhere工程公司为SAP工作。

sysuser
是一个视图。底层表是sys.isysuser,这可能是您无法创建触发器的原因,但我不确定。很抱歉,我想知道轮询??轮询=偶尔检查是什么意思。您可以创建自己的包含所有当前用户的表,然后不时检查系统表以查看是否创建了新用户或删除了现有用户。这就是我目前正在处理的问题,但我认为有人会知道更好的解决方案,那么通过事务日志呢?是的,您也可以通过事务日志获取该信息。您可以使用
dbtran
翻译日志,然后查看“创建用户/授予连接”和“删除用户/撤销连接”的输出。