create any table is too powerful to provide non-DBAs. The best approach would be to create a “create a table” procedure in the target schema that will accept the sanitized components of the required DDL and provide execution privileges for the required users.
A suitable interface would be something like ...
create procedure create_table( table_name varchar2, columns varchar2, etc varchar2)
... so you can ...
begin user1.create_table( table_name => 'TEST', columns => 'id NUMBER PRIMARY KEY', etc => ''); end;
... and have the design of the procedure and execute the DDL for you.
source share