Introduction
When you want to securely manage data and applications in Microsoft Dataverse, it's essential that you understand the concept of environments. Each environment can have zero or one instance of a Dataverse database, and it serves as a collection of objects such as tables, flows, apps, connections, and security roles. These environments help you organize and control access to your data and applications, which helps make it easier for you to manage and secure your resources.
Typically, an organization might use multiple environments to support different groups of users simultaneously. This setup allows you to limit who can access specific data, apps, and workflows in each environment. One common practice is to create separate environments for different stages of application lifecycle management (ALM), such as development, testing, and production.
The three types of environments are:
Development - This environment is restricted to developers and a select few managers or test users. It provides a controlled space where developers can build and refine their applications without impacting the wider organization.
Test - The test environment is where developers and designated test users conduct thorough testing. It ensures that applications function correctly before the organization deploys them to a broader audience.
Production - The production environment is where you can make the final, polished applications available to a wide range of users. In this environment, you configure permissions to allow access to the data, apps from Microsoft Power Apps, and Microsoft Power Automate workflows.
Understanding and effectively managing environments is crucial for maintaining the security and efficiency of your Dataverse applications. The subsequent units in this module further explore important Dataverse security concepts, including:
Role-based security
Business units and teams
Hierarchy security models
Record sharing
Column security
Security across environments
Important
Granting a user access to an environment doesn't automatically give them access to all data, apps, workflows, or other resources in the environment that they need to use. A user also needs permissions to the specific resources and objects that they plan to interact with in the environment, such as connections in flows, apps, or data.