Production and non-production environments should be isolated as a best practice. Your non-production environments likely have less monitoring, may have unsafe code, may not have updated machines, etc.
If you have anything that can go between these environments you are increasing the risk of:
- Malware traversing from dev to prod
- Confusion and mixing of group memberships or permissions
- People accidentally using dev for production processes or decision making
- People being confused about where they are accessing information
If you have one ETL process that sends the same data to production and non-production, you also may be violating data privacy requirements/policies or external requirements like from HIPAA or PCI.
In general, data should not go from production to development or vice a versa. Only code should be migrated from dev to production through a well defined and controlled process.
You should probably not be sharing authentication systems or at least accounts between both environments either. You may not even want to use production accounts for "training" environments. Production systems should remain isolated from anything non-prod.
I have seen non-production and test environments where all sorts of weird stuff was permitted, where accounts were shared between developers, were data was dumped, logged, and analyzed in ways which would not be acceptable for production data at any organization.
Reading some of your comments to other answers:
It sounds like a concern may be too much data being permitted into the dev environment. It's not clear if you are sanitizing data, but it may be an acceptable risk to have 1 month of data in dev, but putting 5 years worth is too much of a risk exposure.
I will update my answer if you add more details to your question.