问题标签 [ddl-trigger]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
1230 浏览

sql-server - SQL Server 2005 变更审核

SQL Server 2005 中是否有内置的方式来审计特别是删除存储过程之类的事情?有我可以查询的历史记录表吗?我们有一个神秘的sproc,现在已经消失了几次。

0 投票
2 回答
689 浏览

sql-server - SQL Server 2000 中是否有 DDL 审计

如果没有,有没有办法判断触发器何时被禁用/启用?

跟进:

这是一个相当有趣的诊断案例。我只是从外围参与进来,做诊断的人不是数据库人。

无论如何,他有一个触发器,可以将数据从一个表移动到另一个表。他做了一个比较,并不是所有的数据都进入了第二张表。我说,我是 SQL Server 的批评者,但我相信他们的触发器会在同一个事务中触发。他说,但有些数据成功了……如果它只是被禁用,什么都不应该成功。真的。所以我说也许有人在启用和禁用触发器。因此问题。

但真正发生的是有人永久禁用触发器并将代码复制到设置为在特定时间运行的存储过程中。

正确的取证测试应该是查看第二个表的依赖关系,看看还有什么在使用它。这将显示肿瘤sproc......(我一直在看很多房子重播,你能说出来吗)。

0 投票
2 回答
3431 浏览

tsql - 如何为 SQL Server 2005 实例中的所有数据库创建 DDL 触发器

我将为 SQL Server 实例中的所有数据库创建一个 DDL 触发器。我想一次运行而不是每个数据库运行多次。

下面是我需要执行的两条 T-SQL 语句:

我的问题是:如何在一次运行中以编程方式创建 DDL 触发器?

0 投票
1 回答
3586 浏览

sql - 如何从 DDL 触发器中获取 ALTER 之前的过程文本

我正在创建一个触发器来跟踪过程文本的ALTER编辑方式。

在数据库 DDL 触发器中,可以通过/EVENT_INSTANCE/TSQLCommand.

即使经过调查EVENTDATA(),它也没有包含之前定义的程序的值ALTER

有没有办法检索以前的文本,例如如何使用DELETED表访问 DML 触发器中已删除的值?

0 投票
2 回答
1632 浏览

sql-server - 用 C# 编写的 SQL CLR DDL 触发器

是否可以在 C# 中创建数据库/DDL 触发器?而且,如果是这样,那怎么办?

[编辑]

基本上,我决定将 CLR 用于数据库触发器,因为我想利用 C# SMO 编写更改对象的脚本并将对象脚本插入到跟踪数据库对象版本的表中。

0 投票
1 回答
1015 浏览

sql - 如何获取 SQL Server 架构更改,尤其是“列名”更改

我正在使用触发器来跟踪 DDL 更改,但是当我从 SQL Server Management Studio 更改列名时,触发器不起作用?

0 投票
1 回答
550 浏览

sql-server - 如何将签名添加到 DDL 触发器?

我在数据库上有一个 DDL 触发器。我想通过证书为其添加签名。我拥有完整的 sa 权利,但是当我尝试运行该语句时

我收到以下错误

如何将签名添加到此 DDL 触发器?

0 投票
1 回答
771 浏览

sql-server - DISABLE TRIGGER 触发触发

有一个安全触发器可以阻止生产数据库实例上的所有 SQL DDL 事件(ALTER/DROP/CREATE 等)。

对于您要进行的部署DISABLE TRIGGER,然后ENABLE TRIGGER在完成时进行。

我希望EXEC sp_notify_operator ...在安全触发器被禁用/启用时通知操作员 ( )。它们似乎不是DDL 事件,我也无法在sys.triggers其中添加 UPDATE/DELETE 触发器。有任何想法吗?

0 投票
1 回答
1114 浏览

mysql - MySql:知道上次修改表的日期

我在 MySql 中使用 InnoDB 引擎,我试图弄清楚是否有可能知道上次修改表的日期时间(无论是数据还是结构)。

因为它是 InnoDB,所以我不能使用column update_timein information_schemaTables因为那里没有记录任何内容。information_schema无论如何,大量数据的性能很糟糕,所以没有大的损失。

我考虑过使用一个触发器,在进行修改时将日期插入到自制的“元数据”表中,但是 MySql 不支持 DDL 触发器(Create、Alter 和 Drop 语句),所以这也行不通.

我的想法有点用完了,有什么建议吗?

谢谢

编辑:我忘了指定这个日期时间数据将由我正在开发的 Silverlight 应用程序检索(通过 Web 服务)。

提供更多背景信息:我的 Web 服务上有一个方法,它返回数据库的结构及其数据。根据大小,这可能是一个相对较长的操作,因为我必须在information_schema表中获取外键信息。所以我只想在数据或结构发生变化时查询数据库。

0 投票
2 回答
16709 浏览

oracle - How do I create a Oracle trigger that grants permissions

I want to do something that's conceptually simple but seems to be a lot more complex in reality.

Basically, whenever a new table is created for a couple of users in our database, I want to grant select permissions to a role. Basically this:

grant select on TABLENAME to READROLE;

So far my trigger looks something like this:

CREATE OR REPLACE TRIGGER osmm_grant_on_creation

AFTER CREATE ON OSMM.SCHEMA

BEGIN

END

Problem is, I can't figure out how to join the two together by getting the name of the newly created table and referencing it through the trigger to the grant. Any suggestions? Thanks.