I agree with
footpad, that this is a data problem.
In Oracle, and especially for Data Warehousing, there is the concept of "Materialized Views" which is an attempt to solve this problem, partway between coding actual tables to hold queries and still allowing the users to enter any query they please. The (potentially) very long execution times for certain queries makes this a valuable approach, especially when the underlying data doesnt change very quickly (materialized views can be refreshed, but in my experience, the time cost is => original query).
Certain front end tools (like Brio) do have varying user levels as well, so that less experienced users have a set of canned queries to choose from (and these are stored in the Oracle database behind it), and the more experienced may enter their own queries.
This approach gives the kind of control a DBA craves, while still allowing a modest level of freedom for users.