限制数据更改

使用 SPL 例程时,可以限制对表所作的更改。通过 SPL 例程来引导所有更改。由 SPL 例程进行更改,而不是由用户直接进行更改。如果要将用户限制为每次只能删除一行以确保他们不会意外除去表中所有的行,那么使用下列特权来设置数据库:
  • 您是数据库的 DBA。
  • 所有用户对数据库都具有 Connect 特权。他们可以具有 Resource 特权。对于本示例,他们对正在受保护的表不具有 Delete 特权。
  • 使用 DBA 关键字来创建 SPL 例程。
  • SPL 例程执行删除操作。
编写与以下过程类似的 SPL 过程,下面的过程使用带有用户提供的 customer_num 的 WHERE 子句从 customer 表中删除行:
CREATE DBA PROCEDURE delete_customer(cnum INT)

DELETE FROM customer
      WHERE customer_num = cnum;

END PROCEDURE;