【问题标题】:Create Triggers on SYSUSER table in sql Anywhere 16在 sql Anywhere 16 中的 SYSUSER 表上创建触发器
【发布时间】:2014-10-17 01:44:54
【问题描述】:

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

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

sybase 新手请帮忙。

这是我的创建触发代码

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

【问题讨论】:

  • sysuser 是一个视图。基础表是sys.isysuser 这可能是您无法创建触发器的原因,但我不确定。

标签: triggers sybase sqlanywhere


【解决方案1】:

您不能在系统表上创建触发器。您可以为“系统事件”创建处理程序,在线 SQL Anywhere documentation 中对此进行了描述。不幸的是,创建或删除用户不是可以处理的系统事件。我不相信你可以做你想做的事。

全面披露:我在 SAP 的 SQL Anywhere 工程部门工作。

【讨论】:

  • 对不起,我想知道你说的投票是什么意思??
  • 轮询 = 偶尔检查。您可以创建自己的包含所有当前用户的表,然后不时检查系统表以查看是否创建了任何新用户或删除了现有用户。
  • 这就是我目前的工作方式,但认为有人会知道更好的解决方案,通过事务日志呢?
  • 是的,您也可以通过事务日志获取该信息。您可以使用dbtran 翻译日志,然后查看“create user/grant connect”和“drop user/revoke connect”的输出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-24
  • 2020-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-22
  • 2015-06-27
相关资源
最近更新 更多