# Set up row and column access control

Data security and integrity are essential in collaborative environments where multiple users work on a shared database. PowerTable sheets address your security requirements by enabling you to configure permissions for rows and columns at a granular level.

{% hint style="info" %}

#### Important

This feature is in preview.
{% endhint %}

In this article, you learn how to set row and column access control permissions for your PowerTable app to ensure database security. You perform the following actions:

* Use the **Manage Access** menu to set row and column permissions, allowing or restricting specific users from performing certain actions (add, update, or delete).
* Set up rule-based access to rows and columns to further customize permissions.

To get started, select **Setup > Manage Access**.

<figure><img src="/files/BbTsgsdVJEyOjkqtqtLt" alt=""><figcaption></figcaption></figure>

### Row access

From the **Row Access** pane, you can complete the following actions.

#### Add

In **Row Access**, under the **Add** section, you can specify who is allowed to add rows to the table:

* **No one**: Select this option to prevent users from adding new rows to your table.
* **All users in this workspace**: Select this option to allow everyone in the workspace to add records.
* **Specific users**: Select this option to allow only certain users to add rows. Enter the email addresses of the users or the Active Directory groups you wish to grant access.

<figure><img src="/files/sTurJP5SnyK1rbfbi1Yt" alt=""><figcaption></figcaption></figure>

Select **Save** to save and close the window.

#### Update

In the **Update** section, you can specify who has permission to update existing rows:

* **No one**: Choose this option to prevent users from updating rows.
* **All users in this workspace**: Select this option to allow all workspace users to update records.
* **Specific users in this workspace**: Choose this option to allow only certain workspace users to update the rows. Enter the user email addresses or the Active Directory group IDs that you want to allow.
* **Rule-based access**: Select this option to configure rules that specify the conditions under which a user or an Active Directory group can update rows in the table.

<figure><img src="/files/uo52PE7mb3VZQ4nq9ozE" alt=""><figcaption></figcaption></figure>

#### Add rule

Select **Add Rule**. Enter a name for the rule. Configure the filter criteria for the rule and add the required users. Only designated users can update product records that meet the configured condition.

<figure><img src="/files/FE55eY9WaE505mkAiFgI" alt=""><figcaption></figcaption></figure>

You can configure multiple conditions and combine them using **And** or **Or**.

<figure><img src="/files/KGDF1sbkvzzkbFJlkn12" alt=""><figcaption></figcaption></figure>

You can create multiple rules based on specific criteria and assign the appropriate users to each rule.

<figure><img src="/files/okdTJIh6gI8NFSu39ERj" alt=""><figcaption></figcaption></figure>

When you're done, select **Save**.

#### Delete

In the **Delete** section, you can specify which workspace users can delete rows.

<figure><img src="/files/9YiBtiqPOmTRmh7lMmoJ" alt=""><figcaption></figcaption></figure>

**Delete type**

With the **Delete Type** option, you can configure whether users can delete rows permanently or do a soft delete.

* **Permanent (Hard Delete)**: If you select this option, the deleted rows are removed from the database permanently.
* **Mark as Deleted (Soft Delete)**: If you select this option, the deleted rows remain in the database but are marked as deleted. When a row is deleted, a specific value is assigned to an existing table column.

  For instance, you might assign the value **DELETED** to the **Status** column for the rows that are deleted.

<figure><img src="/files/BY71gORAe1wChVR35zFp" alt=""><figcaption></figcaption></figure>

Deleting a row doesn't remove the row. Instead, it marks it as deleted.

<figure><img src="/files/p3lEtLawQdDSTkj616rD" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}

#### Note

In this example, a new column called **Status** was created using **Add Database Column** to track deleted rows.
{% endhint %}

**Show deleted rows**

While soft-deleting rows, if the **Show Deleted rows** option is selected, the deleted rows are shown in a grayed-out format.

When this option is unchecked, the deleted rows are hidden from the table.

You can use the **audit log** to keep track of all changes, including the list of permanently deleted and soft-deleted rows.

<figure><img src="/files/JBP1LTuNs9ld6qmNER5h" alt=""><figcaption></figcaption></figure>

#### Finish the rule

After configuring the add, update, and delete permissions, select **Save**.

### Column access

Just as you can configure row permissions, you can also set column permissions.

By default, all workspace users who have access to the PowerTable item can view and modify all columns.

To set up access permissions to the columns,

1. Select **Setup > Manage Access**.
2. Choose **Column Access**.
3. To set permissions for a column, enter the name or email address of the users to whom you wish to provide the access in the **Who Can Edit** field.

<figure><img src="/files/me0kqSDEsNCtXQjb72Rc" alt=""><figcaption></figcaption></figure>

4. You can add multiple users. You can also enter the email address of an organizational group or an Active Directory list.
5. Clear **Allow Edits** to prevent users from editing specific columns, such as sensitive data or critical information that should remain unchanged. As a best practice, keep the **primary key** field locked so that it can't be edited.
6. Select **Save** to save the settings.

In addition to row-level access control, you can also [set up approval workflows](/powertable-sheets/how-tos/approval-flow/configure-approval-workflow.md) so that every change made by a user goes through a review and approval process.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fabricplan.com/powertable-sheets/how-tos/set-up-row-and-column-access-control.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
