Usually, you can generate your own dynamic/transactional data once you know the nature of data. You always do not need to grab data from the production server.
But, you will need to have latest of store procedures and any change in entity, table structure or mapping structure.
In that case, you can set up a process that you have your own database which will get updates from the database used by the dev team. Once the changes are signed off, it will go to the production database. This is the ideal process. You can stay as a gatekeeper.
I recommend you to run bi-weekly or monthly job to fetch data from the production DB and rewrite your QA DB with that, provided there are not SP, Entity, Table structure or table mapping changes.