1. Collaborate
  2. Access Control
  3. Asset Permissions
  • Home
  • What is TileDB?
  • Get Started
  • Explore Content
  • Accounts
    • Individual Accounts
      • Apply for the Free Tier
      • Profile
        • Overview
        • Cloud Credentials
        • Storage Paths
        • REST API Tokens
        • Credits
    • Organization Admins
      • Create an Organization
      • Profile
        • Overview
        • Members
        • Cloud Credentials
        • Storage Paths
        • Billing
      • API Tokens
    • Organization Members
      • Organization Invitations
      • Profile
        • Overview
        • Members
        • Cloud Credentials
        • Storage Paths
        • Billing
      • API Tokens
  • Catalog
    • Introduction
    • Data
      • Arrays
      • Tables
      • Single-Cell (SOMA)
      • Genomics (VCF)
      • Biomedical Imaging
      • Vector Search
      • Files
    • Code
      • Notebooks
      • Dashboards
      • User-Defined Functions
      • Task Graphs
      • ML Models
    • Groups
    • Marketplace
    • Search
  • Collaborate
    • Introduction
    • Organizations
    • Access Control
      • Introduction
      • Share Assets
      • Asset Permissions
      • Public Assets
    • Logging
    • Marketplace
  • Analyze
    • Introduction
    • Slice Data
    • Multi-Region Redirection
    • Notebooks
      • Launch a Notebook
      • Usage
      • Widgets
      • Notebook Image Dependencies
    • Dashboards
      • Dashboards
      • Streamlit
    • Preview
    • User-Defined Functions
    • Task Graphs
    • Serverless SQL
    • Monitor
      • Task Log
      • Task Graph Log
  • Scale
    • Introduction
    • Task Graphs
    • API Usage
  • Structure
    • Why Structure Is Important
    • Arrays
      • Introduction
      • Quickstart
      • Foundation
        • Array Data Model
        • Key Concepts
          • Storage
            • Arrays
            • Dimensions
            • Attributes
            • Cells
            • Domain
            • Tiles
            • Data Layout
            • Compression
            • Encryption
            • Tile Filters
            • Array Schema
            • Schema Evolution
            • Fragments
            • Fragment Metadata
            • Commits
            • Indexing
            • Array Metadata
            • Datetimes
            • Groups
            • Object Stores
          • Compute
            • Writes
            • Deletions
            • Consolidation
            • Vacuuming
            • Time Traveling
            • Reads
            • Query Conditions
            • Aggregates
            • User-Defined Functions
            • Distributed Compute
            • Concurrency
            • Parallelism
        • Storage Format Spec
      • Tutorials
        • Basics
          • Basic Dense Array
          • Basic Sparse Array
          • Array Metadata
          • Compression
          • Encryption
          • Data Layout
          • Tile Filters
          • Datetimes
          • Multiple Attributes
          • Variable-Length Attributes
          • String Dimensions
          • Nullable Attributes
          • Multi-Range Reads
          • Query Conditions
          • Aggregates
          • Deletions
          • Catching Errors
          • Configuration
          • Basic S3 Example
          • Basic TileDB Cloud
          • fromDataFrame
          • Palmer Penguins
        • Advanced
          • Schema Evolution
          • Advanced Writes
            • Write at a Timestamp
            • Get Fragment Info
            • Consolidation
              • Fragments
              • Fragment List
              • Consolidation Plan
              • Commits
              • Fragment Metadata
              • Array Metadata
            • Vacuuming
              • Fragments
              • Commits
              • Fragment Metadata
              • Array Metadata
          • Advanced Reads
            • Get Fragment Info
            • Time Traveling
              • Introduction
              • Fragments
              • Array Metadata
              • Schema Evolution
          • Array Upgrade
          • Backends
            • Amazon S3
            • Azure Blob Storage
            • Google Cloud Storage
            • MinIO
            • Lustre
          • Virtual Filesystem
          • User-Defined Functions
          • Distributed Compute
          • Result Estimation
          • Incomplete Queries
        • Management
          • Array Schema
          • Groups
          • Object Management
        • Performance
          • Summary of Factors
          • Dense vs. Sparse
          • Dimensions vs. Attributes
          • Compression
          • Tiling and Data Layout
          • Tuning Writes
          • Tuning Reads
      • API Reference
    • Tables
      • Introduction
      • Quickstart
      • Foundation
        • Data Model
        • Key Concepts
          • Indexes
          • Columnar Storage
          • Compression
          • Data Manipulation
          • Optimize Tables
          • ACID
          • Serverless SQL
          • SQL Connectors
          • Dataframes
          • CSV Ingestion
      • Tutorials
        • Basics
          • Ingestion with SQL
          • CSV Ingestion
          • Basic S3 Example
          • Running Locally
        • Advanced
          • Scalable Ingestion
          • Scalable Queries
      • API Reference
    • AI & ML
      • Vector Search
        • Introduction
        • Quickstart
        • Foundation
          • Data Model
          • Key Concepts
            • Vector Search
            • Vector Databases
            • Algorithms
            • Distance Metrics
            • Updates
            • Deployment Methods
            • Architecture
            • Distributed Compute
          • Storage Format Spec
        • Tutorials
          • Basics
            • Ingestion & Querying
            • Updates
            • Deletions
            • Basic S3 Example
            • Running Locally
          • Advanced
            • Versioning
            • Time Traveling
            • Consolidation
            • Distributed Compute
            • RAG LLM
            • LLM Memory
            • File Search
            • Image Search
            • Protein Search
          • Performance
        • API Reference
      • ML Models
        • Introduction
        • Quickstart
        • Foundation
          • Basics
          • Storage
          • Cloud Execution
          • Why TileDB for Machine Learning
        • Tutorials
          • Ingestion
            • Data Ingestion
              • Dense Datasets
              • Sparse Datasets
            • ML Model Ingestion
          • Management
            • Array Schema
            • Machine Learning: Groups
            • Time Traveling
    • Life Sciences
      • Single-cell
        • Introduction
        • Quickstart
        • Foundation
          • Data Model
          • Key Concepts
            • Data Structures
            • Use of Apache Arrow
            • Join IDs
            • State Management
            • TileDB Cloud URIs
          • SOMA API Specification
        • Tutorials
          • Data Ingestion
          • Bulk Ingestion Tutorial
          • Data Access
          • Distributed Compute
          • Basic S3 Example
          • Multi-Experiment Queries
          • Appending Data to a SOMA Experiment
          • Add New Measurements
          • SQL Queries
          • Running Locally
          • Shapes in TileDB-SOMA
          • Drug Discovery App
        • Spatial
          • Introduction
          • Foundation
            • Spatial Data Model
            • Data Structures
          • Tutorials
            • Spatial Data Ingestion
            • Access Spatial Data
            • Manage Coordinate Spaces
        • API Reference
      • Population Genomics
        • Introduction
        • Quickstart
        • Foundation
          • Data Model
          • Key Concepts
            • The N+1 Problem
            • Architecture
            • Arrays
            • Ingestion
            • Reads
            • Variant Statistics
            • Annotations
            • User-Defined Functions
            • Tables and SQL
            • Distributed Compute
          • Storage Format Spec
        • Tutorials
          • Basics
            • Basic Ingestion
            • Basic Queries
            • Export to VCF
            • Add New Samples
            • Deleting Samples
            • Basic S3 Example
            • Basic TileDB Cloud
          • Advanced
            • Scalable Ingestion
            • Scalable Queries
            • Query Transforms
            • Handling Large Queries
            • Annotations
              • Finding Annotations
              • Embedded Annotations
              • External Annotations
              • Annotation VCFs
              • Ingesting Annotations
            • Variant Statistics
            • Tables and SQL
            • User-Defined Functions
            • Sample Metadata
            • Split VCF
          • Performance
        • API Reference
          • Command Line Interface
          • Python API
          • Cloud API
      • Biomedical Imaging
        • Introduction
        • Foundation
          • Data Model
          • Key Concepts
            • Arrays
            • Ingestion
            • Reads
            • User Defined Functions
          • Storage Format Spec
        • Quickstart
        • Tutorials
          • Basics
            • Ingestion
            • Read
              • OpenSlide
              • TileDB-Py
          • Advanced
            • Batched Ingestion
            • Chunked Ingestion
            • Machine Learning
              • PyTorch
            • Napari
    • Files
  • API Reference
  • Self-Hosting
    • Installation
    • Upgrades
    • Administrative Tasks
    • Image Customization
      • Customize User-Defined Function Images
      • AWS ECR Container Registry
      • Customize Jupyter Notebook Images
    • Single Sign-On
      • Configure Single Sign-On
      • OpenID Connect
      • Okta SCIM
      • Microsoft Entra
  • Glossary

On this page

  • Permissions on individual assets
  • Permissions on group assets
  • Examples
  1. Collaborate
  2. Access Control
  3. Asset Permissions

Asset Permissions

collaborate
organizations
access control
Learn about how permissions on multiple organizations impact a user’s permissions on an asset.

Once you share an asset with users and organizations, you might wonder what access each user has to each asset. Users can be members of more than one organization, and users can share assets with multiple other users and organizations. With this in mind, it may be difficult to find out what permissions each user has on each asset. This document outlines the permission logic in TileDB, empowering you to develop strategies to share assets that fit your organization’s needs.

Permissions on individual assets

If a user belongs to more than one organization, and each organization has different permissions on an asset, that user will receive the union of the following permissions:

  • The permissions of each organization to which the user belongs.
  • The permissions given to the user themselves.

For example, consider a user who belongs to two organizations, and one organization has read access on an asset and another organization has write access on that same asset. In this case, the user will have both read and write permissions on that asset.

Permissions on group assets

VCF, SOMA, biomedical imaging, point cloud, geometries, raster, and vector search are all specialized group assets in TileDB. As mentioned in Share Assets, these objects require you to specify both regular permissions on the asset as well as content permissions, permissions on the assets contained within the parent asset.

If you are the owner of the parent asset as well as all child assets, and you share an asset with a user or an organization that already has permissions on one or more of the child assets, TileDB overwrites the permissions of that user or organization for those objects with what you select in the Content permissions drop down.

If a user belongs to more than one organization, and one organization already has permissions on a child asset, setting content permissions for a different organization to which that user belongs has no effect on the permissions given to the first organization.

Revoking access to a user or an organization on a parent asset also revokes access to all child assets, even if that user or organization had permissions to the child asset before the content permissions were set on the parent.

Examples

For these examples, you will use the following assets and namespaces to illustrate how permissions work:

  • Users named User1, User2, and User3
  • An organization named Org1, of which User1 and User2 are members
  • An organization named Org2, of which User2 is a member
  • A group named Group1, owned by User3
  • Two arrays, Array1 and Array2, each owned by User3 and contained in Group1
  • Example 1
  • Example 2
  • Example 3
  • Example 4
  • Example 5

Give Org1 write access to Array1

User3 gives Org1 write access to Array1. Because User1 and User2 are direct members of Org1, User1 and User2 now have write access to Array1.

Give Org2 read access to Array1

User3 now gives Org2 read access to Array1.

  • User1’s permissions on Array1 are unchanged, because they’re not a member of Org2.
  • Because Org2 now has read access to Array1, User2 now has both read and write access to Array1.

Give Org2 read-write access to Array2

User3 gives Org2 read-write access to Array2. Because Org2 has read-write access to Array2, User2 now has read-write access to Array2.

Give permissions on Group1 to Org1

User3 gives the following permissions to Org1 on Group1:

  • Permissions: read-write
  • Content permissions: read-only

This has the following effect:

  • Org1’s permissions on Array1 change from write to read. Thus, User1 can no longer write to and can only read from Array1.
  • Org1 now has read permissions on Array2. Thus, User1 can now read Array2
  • Org2’s permissions on Array1 and Array2 remain unchanged. Thus, User2 still has read access on Array1 and read-write access on Array2.
  • Org1 has read-write permissions on Group1. Thus, User1 and User2 have read-write permissions on Group1.

Remove permissions on Group1 from Org1

User3 now removes permissions on Group1 from Org1. This has the following effect:

  • Org1 no longer has access to Group1, Array1, or Array2. Thus:
    • User1 and User2 no longer have access to Group1.
    • User1 no longer has access to Array1 or Array2.
  • Org2’s permissions remain unchanged. Thus, User2 still has read access on Array1 and read-write access on Array2.
Share Assets
Public Assets