Skip to content

Commit cbf31cc

Browse files
authored
Merge pull request #5773 from MicrosoftDocs/2592428
Column Permissions - 2592428
2 parents a519064 + ef73bee commit cbf31cc

File tree

8 files changed

+106
-31
lines changed

8 files changed

+106
-31
lines changed

powerapps-docs/maker/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1871,6 +1871,8 @@
18711871
href: ./portals/configure/entity-permissions-studio.md
18721872
- name: "Tutorial: Configure table permissions using portals Studio"
18731873
href: ./portals/configure/entity-permissions-studio-walkthrough.md
1874+
- name: Configure column permissions
1875+
href: ./portals/configure/column-permissions.md
18741876
- name: Manage page permissions
18751877
href: ./portals/configure/webpage-access-control.md
18761878
- name: Create website access permissions
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
---
2+
title: Configure column permissions for portals
3+
description: Configure column permissions for use with the portals Web API.
4+
author: neerajnandwana-msft
5+
ms.service: powerapps
6+
ms.topic: conceptual
7+
ms.custom:
8+
ms.date: 02/01/2022
9+
ms.subservice: portals
10+
ms.author: nenandw
11+
ms.reviewer: ndoelman
12+
contributors:
13+
- nickdoelman
14+
- neerajnandwana-msft
15+
---
16+
17+
# Configure column permissions
18+
19+
[Table permissions](assign-entity-permissions.md) are used to apply security in portals to individual Dataverse table records. You can add **column permissions** to individual table columns. Column permissions are an optional configuration that are associated with [web roles](create-web-roles.md).
20+
21+
> [!NOTE]
22+
> Column permissions are currently only applicable for [portal Web API](../web-api-overview.md) features.
23+
24+
Web roles can have any number of table permissions and column permissions. If web role has multiple column permissions, then all column permissions are applied to the selected web role.
25+
26+
When evaluating the permissions, table permissions are evaluated first. If a user has access to table then respective table's column permissions will be applied. If the user doesn't have access to table, then any column permissions configuration will be ignored.
27+
28+
When no column permissions are defined, then corresponding table permissions will apply to all columns.
29+
30+
> [!Important]
31+
> This feature requires the following versions for starter portal package and portal host:
32+
> - Portal host version 9.4.1.x or later.
33+
> - Starter portal package version 9.3.2201.x or later.
34+
35+
## Add column permissions to a web role
36+
37+
1. Open the [Portal Management app](configure-portal.md).
38+
39+
1. Go to **Portals** > **Web Roles** and open the web role that you want to add column permissions.
40+
41+
1. Under **Related**, select **Column Permission Profiles**.
42+
43+
1. Select **Add Existing Column Permission Profiles** to add an existing column permission to a web role.
44+
45+
1. Browse for a column permission profile or select **New Column Permission Profiles** to create a new column permission profile record.
46+
47+
:::image type="content" source="media/column-permissions/column-permission-profiles.png" alt-text="Adding column permission profiles.":::
48+
49+
## Attributes and relationships
50+
51+
:::image type="content" source="media/column-permissions/manage-column-permission.png" alt-text="Managing column permissions.":::
52+
53+
The following table explains the table permission attributes.
54+
55+
| **Name** | **Description** |
56+
|-------------------------|-------------------------|
57+
| Profile Name | The descriptive name of the record. This field is required. |
58+
| Table Name | The logical name of the table that column is to be secured. This field is required. |
59+
| Website | The associated website. This field is required. |
60+
| All Column Permissions | This setting will allow users to limit table permission access scope. It's a multiple selection field. For example, the table permission allows the user to **Create**, **Read** all columns. Using this setting, you can further limit to only read permissions for all columns.</br></br>Available permissions:<ul><li>Create</li><li>Read</li><li>Update</li></ul></br>This configuration is useful when you want a specific web role to be able to read all contact fields but allow updates to the first name, and last name columns. You have to select **Read** option for the **All Column Permissions** setting and create column permission records for the first name, and last name columns with read and update permissions. |
61+
| Column Permissions | The associated column permissions. This allows users to define specific permissions for table columns. Columns not defined here will follow the **All Column Permissions** setting. |
62+
| Web Roles | The associated web roles. |
63+
64+
## Examples
65+
66+
In this example, we have the contact table with the columns; *JobTitle* and *Salary*.
67+
68+
The following table demonstrates the result of applying different column and table permissions to the contact table and the additional columns.
69+
70+
| **Table Permission** | **Site Setting**<br><em>**Webapi/contact/enabled**</em> | **Site Setting**<br><em>**Webapi/contact/fields**</em> | **Column Permission** | **Scenario** |
71+
|-------------------------|-------------------------|-------------------------|-------------------------|-------------------------|
72+
| Contact (Create, Read, Update) | TRUE | | | User will not have any permissions to the columns. |
73+
| Contact (Create, Read, Update) | FALSE | | | User will not have any permissions to the columns. |
74+
| Contact (&lt;none&gt;) | TRUE | * | **All Column Permissions:** Create, Read, Update</br>**Column Permissions:** &lt;none&gt; | User will not have any permissions to the columns. |
75+
| Contact (Create, Read, Update) | TRUE | * | | User will have Create, Read, Update permissions on all contact table columns. |
76+
| Contact (Create, Read, Update) | TRUE | | **All Column Permissions:** Create, Read, Update</br>**Column Permissions:** &lt;none&gt; | User will not have any permissions to the columns. |
77+
| Contact (Create, Read, Update) | TRUE | * | **All Column Permissions:** &lt;none&gt;</br>**Column Permissions:**</br><ul></br><li>**JobTitle:** Read</li></br></ul> | User will have Read on JobTitle and Create, Read, Update on all the other columns. |
78+
| Contact (Create, Read, Update) | TRUE | * | **All Column Permissions:** Read</br>**Column Permissions:**</br><ul></br><li>**JobTitle:** Create, Read, Update</li></br></ul> | User will have Create, Read, Update on JobTitle and only Read on all the other columns. |
79+
| Contact (Create, Read, Update) | TRUE | JobTitle, Salary | | User will have Create, Read, Update on JobTitle and Salary. |
80+
| Contact (Create, Read, Update) | TRUE | JobTitle, Salary | **All Column Permissions:** Create, Read, Update</br>**Column Permissions:** &lt;none&gt; | User will have Create, Read, Update on JobTitle and Salary, no permission on other columns. |
81+
| Contact (Create, Read, Update) | TRUE | JobTitle, Salary | **All Column Permissions:** &lt;none&gt;</br>**Column Permissions:**</br><ul></br><li>**JobTitle:** Create, Read, Update</li></br><li>**Salary:** Create, Read, Update</li></br></ul> | User will have Create, Read, Update on JobTitle and Salary. |
82+
| Contact (Create, Read, Update) | TRUE | JobTitle | **All Column Permissions:** &lt;none&gt;</br>**Column Permissions:**</br><ul></br><li>**JobTitle:** Create, Read, Update</li></br><li>**Salary:** Create, Read, Update</li></br></ul> | User will have Create, Read, Update on JobTitle and no permission on Salary. |
83+
| Contact (Create, Read, Update) | TRUE | JobTitle, Salary | **All Column Permissions:** &lt;none&gt;</br>**Column Permissions:**</br><ul></br><li>**JobTitle:** Create, Read, Update</li></br><li>**Salary:** Read</li></br></ul> | User will have Create, Read, Update on JobTitle, and Read on Salary. |
84+
85+
### See also
86+
87+
[Assign table permissions](assign-entity-permissions.md)</br>
88+
[Create web roles for portals](create-web-roles.md)</br>
89+
[Portals Web API overview](../web-api-overview.md)
90+
91+
[!INCLUDE[footer-include](../../../includes/footer-banner.md)]
Loading

powerapps-docs/maker/portals/index.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ landingContent:
2424
linkLists:
2525
- linkListType: whats-new
2626
links:
27+
- text: Configure column permissions for portals
28+
url: configure/column-permissions.md
2729
- text: Configure Dataverse search in portals (preview)
2830
url: configure/dataverse-search.md
2931
- text: Configure choices column for portals (preview)
@@ -32,8 +34,6 @@ landingContent:
3234
url: progressive-web-apps.md
3335
- text: Liquid template tag for code components (preview)
3436
url: component-framework-liquid.md
35-
- text: Create multiple portals of same type
36-
url: create-additional-portals.md
3737
- linkListType: reference
3838
links:
3939
- text: Latest released version of portals

powerapps-docs/maker/portals/read-operations.md

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: neerajnandwana-msft
55
ms.service: powerapps
66
ms.topic: conceptual
77
ms.custom:
8-
ms.date: 10/29/2021
8+
ms.date: 02/01/2022
99
ms.subservice: portals
1010
ms.author: nenandw
1111
ms.reviewer: ndoelman
@@ -15,30 +15,18 @@ contributors:
1515
- nickdoelman
1616
---
1717

18-
# Query data using portals Web API (preview)
18+
# Query data using portals Web API
1919

2020
You can use [available Web API operations](web-api-overview.md#web-api-operations) in portals. Web API operations consist of HTTP requests and responses. This article provides sample read operations, methods, URI, and the sample JSON you can use in the HTTP request.
2121

22-
> [!IMPORTANT]
23-
> - This is a preview feature.
24-
> - [!INCLUDE[cc_preview_features_definition](../../includes/cc-preview-features-definition.md)]
25-
> - Once this feature is enabled, tables and columns configured in the [Site settings for the Web API](web-api-overview.md#site-settings-for-the-web-api) will be available for read operations.
26-
2722
## Prerequisites
2823

24+
- Your portal version must be [9.4.1.x](/power-platform/released-versions/portals/portalupdate941x) or higher.
25+
2926
- Enable table and field for Web API operations. More information: [Site settings for the Web API](web-api-overview.md#site-settings-for-the-web-api)
3027

3128
- The portals Web API accesses table records and follows the table permissions given to users through the associated web roles. Ensure you configure the correct table permissions. More information: [Create web roles](configure/create-web-roles.md)
3229

33-
## Site setting for Web API read operations
34-
35-
You must configure the site setting **WebAPI/enableReadOperationPreview** and set its value to **True** to enable read operations using portals Web API.
36-
37-
:::image type="content" source="media/read-operations/enable-read.png" alt-text="Enable Web API read operation site setting. " border="true":::
38-
39-
> [!Important]
40-
> This site setting is only required during the preview period.
41-
4230
## Query records
4331

4432
The following example queries account records:
@@ -278,5 +266,6 @@ The following example demonstrates how you can expand related entities for entit
278266

279267
[Portals Web API overview](web-api-overview.md)</br>
280268
[Tutorial: Use portal Web API](webapi-tutorial.md)</br>
269+
[Configure column permissions](configure/column-permissions.md)
281270

282271
[!INCLUDE[footer-include](../../includes/footer-banner.md)]

powerapps-docs/maker/portals/web-api-overview.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: neerajnandwana-msft
55
ms.service: powerapps
66
ms.topic: overview
77
ms.custom:
8-
ms.date: 12/02/2021
8+
ms.date: 02/01/2022
99
ms.subservice: portals
1010
ms.author: nenandw
1111
ms.reviewer: ndoelman
@@ -61,6 +61,8 @@ users are allowed to perform create, update, and delete operations on this entit
6161

6262
You can configure record-based security to individual records in portals by using [table permissions](configure/assign-entity-permissions.md). The portals Web API accesses table (entity) records and follows the table permissions given to users through the associated [web role](configure/create-web-roles.md).
6363

64+
You can configure [column permissions](configure/column-permissions.md) to further define privileges to individual columns within a table while using the portals Web API.
65+
6466
![Portals Web API security.](media/web-api/portals-Webapi-security.png "Portals Web API security architecture")
6567

6668
## Authenticating portals Web API requests

powerapps-docs/maker/portals/webapi-tutorial.md

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: neerajnandwana-msft
55
ms.service: powerapps
66
ms.topic: conceptual
77
ms.custom:
8-
ms.date: 10/29/2021
8+
ms.date: 01/31/2022
99
ms.subservice: portals
1010
ms.author: nenandw
1111
ms.reviewer: ndoelman
@@ -40,16 +40,6 @@ Before you can use the portals Web API, you have to enable the required site set
4040

4141
1. Select **New**.
4242

43-
1. In the **Name** box, enter **WebAPI/enableReadOperationPreview**. This site setting is only required while the Web API read operation is in preview.
44-
45-
1. In the **Website** list, select your website record.
46-
47-
1. In the **Value** box, enter **true**.
48-
49-
:::image type="content" source="media/read-operations/enable-read.png" alt-text="Enable WebAPI read operation site setting. " border="true":::
50-
51-
1. Select **New**.
52-
5343
1. In the **Name** box, enter **Webapi/contact/enabled**.
5444

5545
1. In the **Website** list, select your website record.
@@ -542,6 +532,7 @@ Now that you've created a webpage with a sample to read, edit, create, and delet
542532

543533
[Portals Web API overview](web-api-overview.md)</br>
544534
[Portals write, update and delete operations using the Web API](write-update-delete-operations.md)</br>
545-
[Portals read operations using the Web API](read-operations.md)
535+
[Portals read operations using the Web API](read-operations.md)</br>
536+
[Configure column permissions](configure/column-permissions.md)
546537

547538
[!INCLUDE[footer-include](../../includes/footer-banner.md)]

0 commit comments

Comments
 (0)