Hey Jeremy, see comments below
- when it comes to a shared dataverse environment (other applications etc running in the same environment), is there a way to recover data just for certain tables? Recovering the environment works fine, but it also recovers all the other tables and applications that exist in that environment too...
Yes, to recover tables (not data), have a separate solution with just the desired tables and follow #2 or #3 from my original post. For the data of those tables, it really depends on the scenarios for the best approach, but if the data model is not complex and small amount of data (<100K) you can use Configuration Migration Tool to backup and reimport into another environment. You can also export to Excel manually each table or look into complex data backup scenarios like Data Export Service and other ETL solutions.
- Is the recommendation to have one dataverse 'solution' per environment, to avoid the point i mentioned above?
Not necessarily, again it depends on the scenarios and if using managed/unmanaged solutions. Some organizations have many solutions and many environments, and others one. Have a look at the ALM link in my original post and it will give some guidance on how to structure and segment solutions...
- if CDS is an Azure SQL database in the background, is there the ability to be able to directly access those tables (not in Powerapps but another way)?
Not quite, but there is the TDS endpoint to query Dataverse with SQL: https://docs.microsoft.com/powerapps/developer/data-platform/dataverse-sql-query