Account permissions
Accounts represent the physical instance of your data warehouse in Firebolt and are created in Firebolt-supported regions. All objects within an account—such as databases, engines, roles, and users—are scoped to that specific account.
Privilege | Description | GRANT Syntax | REVOKE Syntax |
---|---|---|---|
CREATE DATABASE | Allows creating new databases in an account. | GRANT CREATE DATABASE ON ACCOUNT <account_name> TO <role>; | REVOKE CREATE DATABASE ON ACCOUNT <account_name> FROM <role>; |
USAGE ANY DATABASE | Allows using all current and future databases in an account. | GRANT USAGE ANY DATABASE ON ACCOUNT <account_name> TO <role>; | REVOKE USAGE ANY DATABASE ON ACCOUNT <account_name> FROM <role>; |
MODIFY ANY DATABASE | Allows editing all current and future databases in an account. | GRANT MODIFY ANY DATABASE ON ACCOUNT <account_name> TO <role>; | REVOKE MODIFY ANY DATABASE ON ACCOUNT <account_name> FROM <role>; |
CREATE ENGINE | Allows creating new engines in an account. | GRANT CREATE ENGINE ON ACCOUNT <account_name> TO <role>; | REVOKE CREATE ENGINE ON ACCOUNT <account_name> FROM <role>; |
USAGE ANY ENGINE | Allows using all current and future engines in an account. | GRANT USAGE ANY ENGINE ON ACCOUNT <account_name> TO <role>; | REVOKE USAGE ANY ENGINE ON ACCOUNT <account_name> FROM <role>; |
OPERATE ANY ENGINE | Allows starting and stopping all current and future engines in the account. | GRANT OPERATE ANY ENGINE ON ACCOUNT <account_name> TO <role>; | REVOKE OPERATE ANY ENGINE ON ACCOUNT <account_name> FROM <role>; |
MODIFY ANY ENGINE | Allows editing all current and future engines in the account. | GRANT MODIFY ANY ENGINE ON ACCOUNT <account_name> TO <role>; | REVOKE MODIFY ANY ENGINE ON ACCOUNT <account_name> FROM <role>; |
CREATE ROLE | Allows creating new roles in the account. | GRANT CREATE ROLE ON ACCOUNT <account_name> TO <role>; | REVOKE CREATE ROLE ON ACCOUNT <account_name> FROM <role>; |
MODIFY ANY ROLE | Allows editing all current and future roles in the account. | GRANT MODIFY ANY ROLE ON ACCOUNT <account_name> TO <role>; | REVOKE MODIFY ANY ROLE ON ACCOUNT <account_name> FROM <role>; |
CREATE USER | Allows creating new users in the account. | GRANT CREATE USER ON ACCOUNT <account_name> TO <role>; | REVOKE CREATE USER ON ACCOUNT <account_name> FROM <role>; |
MODIFY ANY USER | Allows editing all current and future users in the account. | GRANT MODIFY ANY USER ON ACCOUNT <account_name> TO <role>; | REVOKE MODIFY ANY USER ON ACCOUNT <account_name> FROM <role>; |
MONITOR [ANY USAGE] | Enables the tracking of engine queries through the engine_running_queries view for active queries and the engine_query_history view for past queries in information_schema . | GRANT MONITOR ANY USAGE ON ACCOUNT <account_name> TO <role>; | REVOKE MONITOR ANY USAGE ON ACCOUNT <account_name> FROM <role>; |
ALL [PRIVILEGES] | Grants all direct privileges for a specified account to a specified role. | GRANT ALL ON ACCOUNT <account_name> TO <role>; | REVOKE ALL ON ACCOUNT <account_name> FROM <role>; |
Revoking a privilege removes it from a role but does not explicitly deny the privilege. If the privilege was not previously granted, revoking it has no effect.
Examples of granting account-level permissions
CREATE DATABASE permission
The following code example grants the role developer_role
permission to create new databases within the account_name
:
GRANT CREATE DATABASE ON ACCOUNT account_name TO developer_role;
USAGE ANY DATABASE permission
The following code example gives permission to the role developer_role
to access all current and future databases within the account_name
:
GRANT USAGE ANY DATABASE ON ACCOUNT account_name TO developer_role;
MODIFY ANY DATABASE permission
The following code example grants the role developer_role
permission to modify or delete all current and future databases within the account_name
:
GRANT MODIFY ANY DATABASE ON ACCOUNT account_name TO developer_role;
CREATE ENGINE permission
The following code example gives the role developer_role
permission to create new engines within the account_name
:
GRANT CREATE ENGINE ON ACCOUNT account_name TO developer_role;
USAGE ANY ENGINE permission
The following code example grants the role developer_role
permission to use all current and future engines within the account_name
:
GRANT USAGE ANY ENGINE ON ACCOUNT account_name TO developer_role;
OPERATE ANY ENGINE permission
The following code example gives the role developer_role
permission to start and stop all current and future engines within the account_name
:
GRANT USAGE ANY DATABASE ON ACCOUNT account_name TO developer_role;
MODIFY ANY ENGINE permission
The following code example grants the role developer_role
permission to modify or delete all current and future engines within the account_name
:
GRANT MODIFY ANY ENGINE ON ACCOUNT account_name TO developer_role;
CREATE ROLE permission
The following code example gives the role developer_role
permission to create new roles within the account_name
:
GRANT CREATE ROLE ON ACCOUNT account_name TO developer_role;
MODIFY ANY ROLE permission
The following code example grants the role developer_role
permission to modify or delete all current and future roles within the account_name
:
GRANT MODIFY ANY ROLE ON ACCOUNT account_name TO developer_role;
CREATE USER permission
The following code example gives the role developer_role
permission to create new users within the account_name
:
GRANT CREATE USER ON ACCOUNT account_name TO developer_role;
MODIFY ANY USER permission
The following code example grants the role developer_role
permission to modify or delete all current and future users within the account_name
:
GRANT MODIFY ANY USER ON ACCOUNT account_name TO developer_role;
MONITOR [ANY USAGE] permission
The following code example grants the role developer_role
permission to see the query history and currently running queries on all the engines within account_name
:
GRANT MONITOR ANY USAGE ON ACCOUNT "account-1" TO developer_role;