Hi,
In general, it is required to assign the Create privilege over a database in order to allow users to create a temporary table or a materialized table in Denodo. In the case of temporary table, we could assign either a **CREATE** privilege or **CREATE_VIEW** privilege or assign a **create_temporary_table** role for the users to create temporary tables without any issue . However, for materialized tables there are no specific roles, but assigning the user with **CREATE** privilege would be suffice.
Hence please note that, the user assigned with **CREATE** privilege over any database could create both temporary and materialized tables in Denodo. In order to achieve your use case where the users should be allowed to create only the temporary table and not the materialized table, I would suggest to assign only the **create_temporary_table** role to the user and please ensure that the user is not assigned with **CREATE** privilege or the **CREATE_VIEW** privilege.
Furthermore, you could refer to [Temporary Table](https://community.denodo.com/docs/html/browse/latest/en/vdp/vql/temporary_tables/temporary_tables) and [Materialized Table](https://community.denodo.com/docs/html/browse/latest/en/vdp/vql/materialized_tables/materialized_tables) documents under the Virtual DataPort VQL Guide for more information.
If you still need further assistance and if you are a valid support user, you can raise a [Support Case](https://support.denodo.com/cases/add), for further assistance from the Support Team.
Hope this helps!