CREATE DBA PROCEDURE all_objects()
CREATE TABLE learn1 (intone SERIAL, inttwo INT NOT NULL,
charcol CHAR(10) );
CREATE INDEX learn_ix ON learn1 (inttwo);
CREATE TABLE toys (name CHAR(15) NOT NULL UNIQUE,
description CHAR(30), on_hand INT);
END PROCEDURE;
要使用 all_objects 过程来控制将列添加至表的操作,请取消所有用户对数据库的 Resource 特权。当用户尝试在此过程外部通过 SQL 语句来创建表、索引或视图时,他们无法完成该操作。当用户执行该过程时,他们具有临时的 DBA 特权,因此,举例来说,CREATE TABLE 语句会成功,并且可以保证对添加的每个列都加以约束。另外,用户创建的对象由那些用户拥有。对于 all_objects 过程,任何执行该过程的人都拥有两个表和索引。