How to prevent users other than DBAs from creating database links
I think you are approaching this from the wrong end. A database link includes the user ID and password to connect to the remote server; if the user ID does not exists on the remote server or is not allowed to connect, the problem does not exist. If you don't want certain users to run queries against your data warehouse, don't authorize them there.

If you check the SQL reference you will see that users require the CREATE DATABASE LINK privilege to create those links. You can revoke the privilege from some users, but that would not prevent them from connecting directly to the remote database and running their queries there.