Skip to main content

Permissions

Permissions can be enforced on resources and data in Onehouse with roles and privileges.

Onehouse Resources and Data Objects

Permissions can be set on the following entities:

EntityDescriptionPermission TypeExamples
Onehouse ResourcesLogical Onehouse entities in your account or project.RolesAccount, Projects, Users, Groups, Service Principals, Jobs, Clusters, Table Services, Stream Captures, Sources, and Catalogs
Data ObjectsYour data stored and/or managed by Onehouse.PrivilegesLakes, Databases, and Tables

What permissions are required to create entities?

A user must meet the following prerequisites to create resources and objects in Onehouse:

EntityPrequisites for creation
AccountNo account exists for the email domain
ProjectAccount Admin role
GroupAccount Admin role
Service PrincipalAccount Admin role
UserProject Admin role
Stream Capture
  1. Create Table privilege on target database
  2. Cluster User role on the Cluster
ClusterProject Admin role
Table ServiceData privileges on the table (see below)
JobCluster User role on the Cluster
CatalogN/A (anyone in project can create)
SourceN/A (anyone in project can create)
LakeProject Admin role
DatabaseCreate Database privilege on the Lake
TableCreate Table privilege on the Database

Roles for Onehouse Resources

Account

The following roles can be granted on a Onehouse Account:

  • Member
  • Admin
AbilityMemberAdmin
Modify account & billing settingsX
Create projectsX
Create groupsX
Create service principalsX
Configure SCIM identity syncX

Project

The following roles can be granted on a Project:

  • Member
  • Admin
AbilityMemberAdmin
View/Use/Edit/Manage entities with granted permissionsXX
Open the projectXX
View project integrationsXX
View project usageXX
Create SourcesXX
Create CatalogsXX
Create JobsX (with required permissions)X
Create Table ServicesX (with required permissions)X
Create Stream CapturesX (with required permissions)X
Create usersX
Add users to the projectX
Edit user permissions in the projectX
Remove usersX
Connect a cloud accountX
Create ClustersX
Create LakesX
Create and edit project integrationsX
Create and delete API tokensX
Inherit all permissions for all entities in the projectX

Group

The following roles can be granted on a Group:

  • Member
  • Manager
AbilityMemberManager
Create new groups
View metadata for groupXX
Assign roles and privileges to groupX
Remove roles and privileges from groupX
Edit group membersX
Edit group nameX
Delete groupX

Service Principal

The following roles can be granted on a Service Principal:

  • User
  • Manager
AbilityUserManager
Create new service principals
Assign roles and privileges to service principalX
Remove roles and privileges from service principalX
Edit service principal membersX
Edit service principal nameX
Delete service principalX
Create API tokens for the service principalX

Cluster

The following roles can be granted on a Cluster:

  • Viewer
  • User
  • Editor
  • Manager
AbilityViewerUserEditorManager
View Cluster definitionXXXX
Assign Stream Captures / Jobs to ClusterXXX
View Cluster endpointXXX
Edit Cluster definitionXX
Modify permissionsX
Delete ClusterX

Source (coming soon)

The following roles can be granted on a Source:

  • Viewer
  • User
  • Editor
  • Manager
AbilityViewerUserEditorManager
View source definitionXXXX
Use source in a Stream CaptureXXX
Edit source definitionXX
Modify permissionsX
Delete sourceX

Catalog (coming soon)

The following roles can be granted on a Catalog:

  • Viewer
  • User
  • Editor
  • Manager
AbilityViewerUserEditorManager
View catalog definitionXXXX
Use catalog in a Stream CaptureXXX
Use catalog in a MetaSyncXXX
Edit catalog definitionXX
Modify permissionsX
Delete sourceX

Job (coming soon)

The following roles can be granted on a Job:

  • Viewer
  • User
  • Editor
  • Manager
AbilityViewerUserEditorManager
View Job definitionXXXX
View Job run metadataXXXX
View Job run driver logs and Spark UIXXX
Trigger Job runXXX
Cancel Job runXXX
Edit Job definitionXX
Modify permissionsX
Delete JobX

Stream Capture (coming soon)

The following roles can be granted on a Stream Capture:

  • Viewer
  • Editor
  • Manager
AbilityViewerEditorManager
View Stream Capture definitionXXX
View driver logsXXX
Edit Stream Capture definitionXX
Pause / Resume Stream CaptureXX
Clean & Restart Stream CaptureX
Delete Stream CaptureX
Modify permissionsX

Table Service

Table Services do not have their own roles, and instead depend on the data privileges of the table itself. To create/edit/remove/pause/resume a Table Service, a user must:

  • Have User role on the table’s Services Cluster
  • Have the required data privileges on the table (see below)

To view the definition, metrics, and run history of a Table Service, a user must:

  • Have the DESCRIBE privilege on the table
Table ServiceCreate/Edit Requirement PrivilegesView Definition & History Privileges
CompactionALTERDESCRIBE
ClusteringALTERDESCRIBE
CleaningALTERDESCRIBE
MetaSyncSELECTDESCRIBE

Notification

Notifications are handled based on the roles for the underlying resources. Users can view and dismiss notifications for all resources the have access to view.

Data Privileges

The following privileges can be granted on Lakes, Databases, and/or Tables.

Privilege Propogation

Privileges propogate down to their child objects (ie. lake privileges propogate to child databases; database privileges propogate to child tables).

Example: A User granted CREATE_TABLE privilege on a lake receives this privilege for all databases (current and future) in the lake, and the privilege is enforced on those databases.

How to read the table below:

  • Grantable Scope is the Data Objects the privilege can be granted on.
  • Enforced On refers to the Data Objects the privilege can be enforced on.
PrivilegeGrantable ScopeEnforced OnWhat You Can Do
ALLLake, Database, TableLake, Database, TableAll privileges on the object and its children
MANAGELake, Database, TableLake, Database, TableGrant and revoke privileges on the object and its children
DROPLake, Database, TableLake, Database, TableDrop the object and its children
DESCRIBELake, Database, TableLake, Database, TableView object metadata only – no data access
CREATE_DATABASELakeLakeCreate Databases in the Lake
CREATE_TABLELake, DatabaseDatabaseCreate Tables in the Database or Lake
ALTERLake, Database, TableTableAlter metadata (e.g., schema) and change the table's Services Cluster
SELECTLake, Database, TableTableRead Table data
INSERTLake, Database, TableTableInsert/update/read data and create/restore savepoints
DELETELake, Database, TableTableDelete data