# Get Effective Permissions

`GET /api/2.1/unity-catalog/effective-permissions/{securable_type}/{securable_full_name}`

Gets the effective permissions for a securable. Includes inherited permissions from any parent securables.

 NOTE: we recommend using max_results=0 to use the paginated version of this API. Unpaginated calls will be deprecated soon.

 PAGINATION BEHAVIOR: When using pagination (max_results >= 0), a page may contain zero results while still providing a next_page_token.
 Clients must continue reading pages until next_page_token is absent, which is the only indication that the end of results has been reached.

API scopes: unity-catalog

## Path parameters

- `securable_type` (string, optional)
  Type of securable.
- `securable_full_name` (string, optional)
  Full name of securable.

## Query parameters

- `principal` (string, optional)
  If provided, only the effective permissions for the specified principal (user or group) are returned.
- `max_results` (int32, optional)
  Specifies the maximum number of privileges to return (page length).
   Every EffectivePrivilegeAssignment present in a single page response is guaranteed to contain all the effective
   privileges granted on (or inherited by) the requested Securable for the respective principal.
  
   If not set, all the effective permissions are returned.
   If set to
     - lesser than 0: invalid parameter error
     - 0: page length is set to a server configured value
     - lesser than 150 but greater than 0: invalid parameter error (this is to ensure that server is able to return at
       least one complete EffectivePrivilegeAssignment in a single page response)
     - greater than (or equal to) 150: page length is the minimum of this value and a server configured value
- `page_token` (string, optional)
  Opaque token for the next page of results (pagination).

## Returns

- `next_page_token` (string, optional)
  Opaque token to retrieve the next page of results. Absent if there are no more pages.
   __page_token__ should be set to this value for the next request (for the next page of results).
- `privilege_assignments` (array of object, optional)
  The privileges conveyed to each principal (either directly or via inheritance)
  - `principal` (string, optional)
    The principal (user email address or group name).
  - `privileges` (array of object, optional)
    The privileges conveyed to the principal (either directly or via inheritance).
    - `privilege` (string, optional)
      The privilege assigned to the principal.
    - `inherited_from_type` (string, optional)
      The type of the object that conveys this privilege via inheritance.
       This field is omitted when privilege is not inherited (it's assigned to the securable itself).
    - `inherited_from_name` (string, optional)
      The full name of the object that conveys this privilege via inheritance.
       This field is omitted when privilege is not inherited (it's assigned to the securable itself).

## Response

```json
{
  "next_page_token": "string",
  "privilege_assignments": [
    {
      "principal": "string",
      "privileges": [
        {}
      ]
    }
  ]
}
```

