目前有这样一个需求,建表同时将表的权限赋给其他用户。因为考虑到实时性所以想到用触发器实现,如果大家有其他的好想法也麻烦分享一下(重点在于实时)。目前碰到的问题:
1、方法一:在DDL触发器中直接执行grant语句,失败!2、方法二:创建一个DDL触发器,一个DML触发器。建表是触发DDL触发器在表中写入一条数据,触发DML触发器执行Grant命令,失败!(出现:ORA-00604:递归 SQL 级别1 出现错误。ORA-30511系统触发器中无效DDL操作)但是单独触发DML触发器是可以正常执行的。希望万能的大神们给予帮助,谢谢!

解决方案 »

  1.   

    说实话,感觉你这个需求没啥必要,谁会没事去数据库里面创建表呢,创建的次数应该不多吧,没必要搞这个,创建的时候自己手动写grant就够了吧。。个人感觉啊另外,如果你这个实时性要求不是那么太高,可以考虑用ddl触发器+job来实现,考虑考虑。。
      

  2.   

    从来没见过这种需求,DDL对数据库来讲算是非常高风险的操作,只有特权用户才可以做这些,这些操作,一般都是DBA通过命令或脚本实现的。