# Row Access Control

Data security and integrity are critically important, especially in a collaborative environment where multiple users work on a shared database. EDITable addresses your security needs by offering row-level access control at the granular level.&#x20;

You can precisely manage who can add, update, or delete rows by specifying their email IDs. This section explains how you can allow/restrict all or specific users from performing specific actions (add/update/delete) using the 'Row Access Control' in EDITable.

{% hint style="info" %}
Columnar ACL (access control for columns) is also available in EDITable and has been explained in the [Column Access Control](https://docs.inforiver.com/editable/working-with-editable/column-access-control) section.
{% endhint %}

To manage permissions for adding, updating, and deleting rows within a table, go to **Settings -> Row Access.**

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2FVMLtyWEpXPqAnFdypmmM%2Fimage.png?alt=media&#x26;token=4e515660-9ec8-4c87-8554-faba39a2b85f" alt=""><figcaption><p>Set up row access control</p></figcaption></figure>

## 1. Add

1. Enable the **Add Rows** toggle button to allow users to add new rows to the table.&#x20;

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2FeQGWjMNz96Dne9fmiUPj%2Fimage.png?alt=media&#x26;token=b7182865-fd19-4ce4-8886-e9fb6da75677" alt=""><figcaption><p>Enable adding rows</p></figcaption></figure>

2. **Access Control**&#x20;

Under the 'Apply to' section, you can choose to allow all users or only specific users in the workspace to add rows.

* **All users in this workspace:** Select this option to allow all workspace users to add records.
* **Specific users in this workspace:** Choose this option to allow only specific workspace users to add rows. You can enter the email IDs of the users or the AD groups you want to allow.

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2F84o0lHhdDWJytSAMMYVV%2Fimage.png?alt=media&#x26;token=9c96d592-9d3c-49e9-8d9d-e45911f98ab7" alt=""><figcaption><p>Allow specific users to add rows</p></figcaption></figure>

3. Click on **Save** to apply changes.&#x20;

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2FpyvkcpahxyuaWo0HZF85%2Fimage.png?alt=media&#x26;token=7fc6badb-59a9-40da-8540-e1622d836a63" alt=""><figcaption><p>Save settings</p></figcaption></figure>

## 2. Update

1. Enable the **Update Rows** toggle button to allow users to modify existing rows.&#x20;

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2FLpvY7cHBZO1ipZcfgXH0%2Fimage.png?alt=media&#x26;token=804e375a-47df-4a41-add6-652e4eb0eba2" alt=""><figcaption><p>Enable update option</p></figcaption></figure>

2. **Access Control**

Under the 'Apply to' section, you can specify the access rules for the update operation.

* **All users in this workspace:** Select this option to allow all workspace users to update records.

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2Fgu1BX38yQzbyWqC6m2sv%2Fimage.png?alt=media&#x26;token=5c2992f8-4ee7-461e-8201-ff574714a4c2" alt=""><figcaption><p>Allow all users to update rows</p></figcaption></figure>

* **Specific users in this workspace:** Choose this option to allow only certain workspace users to update the rows. Enter the email IDs of the users you want to allow.

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2FE0y0bVVHpGvwcsVRwDWD%2Fimage.png?alt=media&#x26;token=4e4608ad-93bd-42b0-8dac-2f7fc40c0a74" alt=""><figcaption><p>Allow specific users to update rows</p></figcaption></figure>

* **Rule-based access:** Select this option to configure rules governing the update access to particular columns or records in the table based on specified filter criteria.

-> Click on **Add Rule** to add a rule.

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2F6vN3gvDzQtB0ZNVTMQSL%2Fimage.png?alt=media&#x26;token=2035bee4-6e5c-4bad-8223-72cf9ae427fc" alt=""><figcaption><p>Add rule</p></figcaption></figure>

-> Enter the rule name, the filter criteria, and the designated users who can update these rows. Click on **Add.**

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2FHlPv6P4Xt5sBdKyAaDc2%2Fimage.png?alt=media&#x26;token=3426aaa8-31db-4f7b-8ef0-b2eba7adad71" alt=""><figcaption><p>Configuring criteria for a rule</p></figcaption></figure>

-> You can add more filter criteria within a rule by clicking on **Add filter** and then combine them using AND or OR operators.

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2F5VENQ2rctq8weJeuy1C3%2Fimage.png?alt=media&#x26;token=3ecdffa8-5d0d-4fda-ada6-df3c0acfbbee" alt=""><figcaption><p>Adding more criteria within a rule</p></figcaption></figure>

-> You can set as many rules as required and assign corresponding users for each.

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2FJQ9gULWrNVTtmK4qmkKR%2Fimage.png?alt=media&#x26;token=b7feff91-4b43-40db-a885-f85b6c89fbe7" alt=""><figcaption><p>Adding multiple rules</p></figcaption></figure>

3. Click on **Save** to apply changes.&#x20;

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2F5qJ6mAChnUtsp54BVVkz%2Fimage.png?alt=media&#x26;token=5744bb76-e2b8-45c1-ab45-b0c601748bc5" alt=""><figcaption><p>Save settings</p></figcaption></figure>

## 3. Delete

The 'Delete Rows' toggle is disabled by default.

1. Enable the **Delete Rows** toggle button to allow users to delete rows from the table.&#x20;

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2Fy4gt4BqCNAiyE9KArC6E%2Fimage.png?alt=media&#x26;token=bdaac412-5dfc-4319-b951-f9c8f6509d0d" alt=""><figcaption><p>Enable delete option</p></figcaption></figure>

2. **Access Control**

Under the 'Apply to' section, you can choose to allow all users or only specific users in the workspace to delete rows.

* **All users in this workspace:** Select this option to allow all workspace users to delete records.

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2Fa3CLK4G4gCqIpw7K4oat%2Fimage.png?alt=media&#x26;token=fbbf2244-86f1-4246-b2f2-077cb4f5dc9c" alt=""><figcaption><p>Allow all users to delete rows</p></figcaption></figure>

* **Specific users in this workspace:** Choose this option to allow only specific workspace users to delete rows. You can enter the email IDs of the users or the AD groups you want to allow.

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2F9MlZ10jq5wIlt8zPfQNs%2Fimage.png?alt=media&#x26;token=21cfe056-33d0-453f-9a11-37b257cf77af" alt=""><figcaption><p>Allow only specific users to delete rows</p></figcaption></figure>

* **Rule-based access:** Select this option to configure rules governing the delete access to particular columns or records in the table based on specified filter criteria.

-> Click on **Add Rule** to add a rule.

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2FFt4TJAHHjCDateU5Tf8f%2Fimage.png?alt=media&#x26;token=08b8de6a-301f-4ebb-927d-4091aa5b0f35" alt=""><figcaption><p>Add rule for delete access</p></figcaption></figure>

-> Enter the rule name, the filter criteria, and the designated users who can delete these rows. Click on **Add.**

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2FiJadVyH707Za1GEn3Uig%2Fimage.png?alt=media&#x26;token=9c0e4ff5-5476-4e47-8a5b-03c36b1f7e4c" alt=""><figcaption><p>Configuring criteria for a rule</p></figcaption></figure>

-> You can add more filter criteria within a rule by clicking on **Add filter** and then combine them using AND or OR operators.

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2FiI1VRqQ0KauCmPorYG5v%2Fimage.png?alt=media&#x26;token=d147450e-df96-4cd8-bbf8-bf555045933f" alt=""><figcaption><p>Adding more criteria within a rule</p></figcaption></figure>

-> You can set as many rules as required and assign corresponding users for each.

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2FtnJAqbLwvfjJ0mM4lYZf%2Fimage.png?alt=media&#x26;token=dbfe2f99-b974-40f4-a8c2-d2c3a2841280" alt=""><figcaption><p>Adding multiple rules</p></figcaption></figure>

3. Choose the delete type. When you allow users to delete rows, you can let them [delete the rows permanently](#id-3.1.-delete-row-permanently) or [set up a soft delete](#id-3.2.-mark-row-as-deleted). Both methods are explained below in detail.

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2FyO666EUISNJY7vVYLuuh%2Fimage.png?alt=media&#x26;token=8b16c11a-099b-4536-9e22-008921b87352" alt=""><figcaption><p>Choose the delete type</p></figcaption></figure>

4. Click on **Save** to apply changes.&#x20;

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2FrF7YlYjSJMKpuGabLtqs%2Fimage.png?alt=media&#x26;token=bfc7c205-d820-422d-8532-7fbd6b8cadf5" alt=""><figcaption><p>Save settings</p></figcaption></figure>

### Delete Type

### 3.1. Delete row permanently

When you select this option, the deleted rows are removed from the table/database permanently.

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2F8ilAJc2AoBXxhemriAJD%2Fimage.png?alt=media&#x26;token=a658fe50-f902-4b2d-9ba6-2dea7e093839" alt=""><figcaption><p>Delete row permanently</p></figcaption></figure>

### 3.2. Mark row as deleted

When you select this option, the deleted rows remain in the database but are marked as deleted in the table.&#x20;

This is accomplished by setting a specific value to an existing column in the table when a row is deleted. For example, in the example below, we have assigned the text 'DELETED\_ROW' to the deleted row's '*Active'* column. The results are displayed below.

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2F6EYVf7o9rWs0D2QrJn0L%2Fimage.png?alt=media&#x26;token=7db10a84-c8e2-4fc3-9f85-4f0c91a41a0c" alt=""><figcaption><p>Mark row as deleted</p></figcaption></figure>

#### Show deleted rows

When the 'Show deleted rows' option is selected, the deleted rows are shown in the table in a greyed-out format.

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2FeHDR1FqTIYYn3aWVuYTN%2Fimage.png?alt=media&#x26;token=52ef8241-e0e5-4760-9744-6ccd1acecfb5" alt=""><figcaption><p>Show deleted rows</p></figcaption></figure>

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

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2FsKyNUBpfsSyqxVcSFcPd%2Fimage.png?alt=media&#x26;token=8f3e84c9-c682-498e-9c91-25583656aa3f" alt=""><figcaption><p>Deleted rows are hidden</p></figcaption></figure>

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

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2Fx2IqB31wDGBpnTloEnrh%2Fimage.png?alt=media&#x26;token=bd845e9a-eda2-468e-81d5-4ad6a0c6aa11" alt=""><figcaption><p>Audit log</p></figcaption></figure>

{% hint style="info" %}
Soft delete is not supported if Type 2 SCDs are configured in the table. Instead, the deleted rows are struck off.
{% endhint %}

#### In the table below, Type 2 SCDs are configured, and the deleted rows are indicated as shown below:

<figure><img src="https://608526116-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdpYgiTFFEktmDlcxUGTv%2Fuploads%2FNCNL5oImaexoXZECQaL2%2Fimage.png?alt=media&#x26;token=e8456861-00c0-434b-a679-20bb0a319601" alt=""><figcaption></figcaption></figure>

In addition to row-level access control, you can also set up approval workflows so that every change made by a user goes through a review and approval process. This is explained in the next section.
