---
layout: article
title: Database permissions
description: Enhance data security and access control with Appwrite Database Permissions. Learn how to set permissions and access rules for your database tables
---

Permissions define who can access rows in a table. By default **no permissions** are granted to any users, so no user can access any rows.
Permissions exist at two levels, table level and row level permissions.

In Appwrite, permissions are **granted**, meaning a user has no access by default and receive access when granted.
A user with access granted at either table level or row level will be able to access a row.
Users **don't need access at both levels** to access rows.

# Table level {% #table-level %}
Table level permissions apply to every row in the table.
If a user has read, create, update, or delete permissions at the table level, the user can access **all rows** inside the table.

Configure table level permissions by navigating to **Your table** > **Settings** > **Permissions**.

[Learn more about permissions and roles](/docs/advanced/platform/permissions)

# Row level {% #row-level %}
Row level permissions grant access to individual rows.
If a user has read, create, update, or delete permissions at the row level, the user can access the **individual row**.

Row level permissions are only applied if Row Security is enabled in the settings of your table.
Enable row level permissions by navigating to **Your table** > **Settings** > **Row security**.

Row level permissions are configured in individual rows.

[Learn more about permissions and roles](/docs/advanced/platform/permissions)

# Common use cases {% #common-use-cases %}

For examples of how to implement common permission patterns, including creating private rows that are only accessible to their creators, see the [permissions examples](/docs/advanced/platform/permissions#examples) in our platform documentation.


