Oracle数据库中怎么赋予一个用户创建另一个用户下表的权限

Oracle数据库中怎么赋予一个用户创建另一个用户下表的权限

oracle没有提供这种授权方式,但是有两个方法可以实现类似的效果,假设是A用户要在B用户下建表

  1. B用户创建一个存储过程,传入参数为一个sql文本,然后在过程里执行这个sql文本,注意过程要声明为AUTHID DEFINER,再授权这个过程给A用户执行权限,这样A就可以通过调用这个过程来在B用户下创建表了
  2. 授权A用户CREATE ANY TABLE 权限,然后创建一个DDL的触发器,识别到A用户创建的表不是A或者B用户下的对象时,报错

以上方案参考

查了一下资料,这个需求好像做不到,如下:

可以给DBA权限,就一劳永逸了