解决方案 »

  1.   

    可以用第一种方法:结合以下两个视图来判断是否对某表具有权限:
    user_tab_privsSESSION_ROLES
    不是所有的SQL对会牵涉事务,单纯的查询就不会。
    你可以理解为只有对数据有更改操作时才会创建事务
      

  2.   

    所谓触发器,是指在某个DML、DDL、数据库事件 发生时自动触发的一段代码A database trigger is a compiled stored program unit, written in either PL/SQL or Java, that Oracle Database invokes ("fires") automatically whenever one of the following operations occurs:
    1.DML statements on a particular table or view, issued by any user
    2.DDL statements issued either by a particular user or any user
    3.Database events不是用来判断用户权限的
    概念上没搞清楚
    一般情况下,如果用户对要操作的表没有对应权限,则该存储过程创建时就会出现编译错误。一般情况下,程序不会有这个需求,因为软件的正常运行前提就是使用的用户对相关的表已经有了权限如果需要判断的话,可以通过数据字典来查询。查询是否有对应的系统权限或对象权限
      

  3.   

    其实mysql 也是有事务的, 只是需要InnoDB  引擎。