Creating a default directory for managed tables
You can specify a top-level directory for managed tables when creating a Hive database.
Create a default directory for managed tables only after limiting CREATE
DATABASE and ALTER DATABASE statements to users having the Admin role, which has
hive service user permissions. Permissions to the managed
directory must be limited to the
hive service user. In addition to
restricting permissions to the
hive user, you can further secure
managed tables using Ranger fine-grained permissions, such as row-level filtering
and column masking.
hive.metastore.warehouse.dirconfiguration property to give managed tables a common location for governance policies. The managed location designates a single root directory for all tenant tables, managed and external.
Do not set LOCATION and MANAGEDLOCATION to the same file system path.
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION external_table_path] [MANAGEDLOCATION managed_table_directory_path] [WITH DBPROPERTIES (property_name=property_value, ...)];
ALTER (DATABASE|SCHEMA) database_name SET MANAGEDLOCATION [managed_table_directory_path];
Create a database mydatabase that specifies a top level directory named sales
for managed tables.
CREATE DATABASE mydatabase MANAGEDLOCATION '/warehouse/tablespace/managed/hive/sales';
Change the abc_sales database location to the same location as mydatabase.
ALTER DATABASE abc_sales SET MANAGEDLOCATION '/warehouse/tablespace/managed/hive/sales';