diff --git a/catalogue/3.2/mysql_catalogue_schema.sql b/catalogue/3.2/mysql_catalogue_schema.sql
index 2ee80e75bfc36eeded701c2386d747d4988c265f..446cfb49c11d6ac045ea71a61eb92ee21c53ef63 100644
--- a/catalogue/3.2/mysql_catalogue_schema.sql
+++ b/catalogue/3.2/mysql_catalogue_schema.sql
@@ -223,19 +223,20 @@ CREATE INDEX TAPE_TAPE_POOL_ID_IDX ON TAPE(TAPE_POOL_ID);
 CREATE INDEX TAPE_IS_DISABLED_IDX ON TAPE(IS_DISABLED);
 CREATE INDEX TAPE_STATE_IDX ON TAPE(TAPE_STATE);
 CREATE TABLE MOUNT_POLICY(
-  MOUNT_POLICY_NAME        VARCHAR(100)    CONSTRAINT MOUNT_POLICY_MPN_NN  NOT NULL,
-  ARCHIVE_PRIORITY         BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_AP_NN   NOT NULL,
-  ARCHIVE_MIN_REQUEST_AGE  BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL,
-  RETRIEVE_PRIORITY        BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_RP_NN   NOT NULL,
-  RETRIEVE_MIN_REQUEST_AGE BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL,
-  MAX_DRIVES_ALLOWED       BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_MDA_NN  NOT NULL,
-  USER_COMMENT             VARCHAR(1000)   CONSTRAINT MOUNT_POLICY_UC_NN   NOT NULL,
-  CREATION_LOG_USER_NAME   VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL,
-  CREATION_LOG_HOST_NAME   VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL,
-  CREATION_LOG_TIME        BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_CLT_NN  NOT NULL,
-  LAST_UPDATE_USER_NAME    VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL,
-  LAST_UPDATE_HOST_NAME    VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL,
-  LAST_UPDATE_TIME         BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_LUT_NN  NOT NULL,
+  MOUNT_POLICY_NAME          VARCHAR(100)    CONSTRAINT MOUNT_POLICY_MPN_NN  NOT NULL,
+  ARCHIVE_PRIORITY           BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_AP_NN   NOT NULL,
+  ARCHIVE_MIN_REQUEST_AGE    BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL,
+  RETRIEVE_PRIORITY          BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_RP_NN   NOT NULL,
+  RETRIEVE_MIN_REQUEST_AGE   BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL,
+  MAX_DRIVES_ALLOWED         BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_MDA_NN  NOT NULL,
+  MAX_DRIVES_ALLOWED_PER_VO  BIGINT UNSIGNED,
+  USER_COMMENT               VARCHAR(1000)   CONSTRAINT MOUNT_POLICY_UC_NN   NOT NULL,
+  CREATION_LOG_USER_NAME     VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL,
+  CREATION_LOG_HOST_NAME     VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL,
+  CREATION_LOG_TIME          BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_CLT_NN  NOT NULL,
+  LAST_UPDATE_USER_NAME      VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL,
+  LAST_UPDATE_HOST_NAME      VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL,
+  LAST_UPDATE_TIME           BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_LUT_NN  NOT NULL,
   CONSTRAINT MOUNT_POLICY_PK PRIMARY KEY(MOUNT_POLICY_NAME)
 );
 CREATE TABLE REQUESTER_MOUNT_RULE(
diff --git a/catalogue/3.2/oracle_catalogue_schema.sql b/catalogue/3.2/oracle_catalogue_schema.sql
index 3da0396803ef322e327f1cb8092cdbd5e5781278..24b63b7c126eca8dcfa00c7b415749e4a7a04cee 100644
--- a/catalogue/3.2/oracle_catalogue_schema.sql
+++ b/catalogue/3.2/oracle_catalogue_schema.sql
@@ -255,19 +255,20 @@ CREATE INDEX TAPE_TAPE_POOL_ID_IDX ON TAPE(TAPE_POOL_ID);
 CREATE INDEX TAPE_IS_DISABLED_IDX ON TAPE(IS_DISABLED);
 CREATE INDEX TAPE_STATE_IDX ON TAPE(TAPE_STATE);
 CREATE TABLE MOUNT_POLICY(
-  MOUNT_POLICY_NAME        VARCHAR2(100)    CONSTRAINT MOUNT_POLICY_MPN_NN  NOT NULL,
-  ARCHIVE_PRIORITY         NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_AP_NN   NOT NULL,
-  ARCHIVE_MIN_REQUEST_AGE  NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL,
-  RETRIEVE_PRIORITY        NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_RP_NN   NOT NULL,
-  RETRIEVE_MIN_REQUEST_AGE NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL,
-  MAX_DRIVES_ALLOWED       NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_MDA_NN  NOT NULL,
-  USER_COMMENT             VARCHAR2(1000)   CONSTRAINT MOUNT_POLICY_UC_NN   NOT NULL,
-  CREATION_LOG_USER_NAME   VARCHAR2(100)    CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL,
-  CREATION_LOG_HOST_NAME   VARCHAR2(100)    CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL,
-  CREATION_LOG_TIME        NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_CLT_NN  NOT NULL,
-  LAST_UPDATE_USER_NAME    VARCHAR2(100)    CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL,
-  LAST_UPDATE_HOST_NAME    VARCHAR2(100)    CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL,
-  LAST_UPDATE_TIME         NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_LUT_NN  NOT NULL,
+  MOUNT_POLICY_NAME          VARCHAR2(100)    CONSTRAINT MOUNT_POLICY_MPN_NN  NOT NULL,
+  ARCHIVE_PRIORITY           NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_AP_NN   NOT NULL,
+  ARCHIVE_MIN_REQUEST_AGE    NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL,
+  RETRIEVE_PRIORITY          NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_RP_NN   NOT NULL,
+  RETRIEVE_MIN_REQUEST_AGE   NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL,
+  MAX_DRIVES_ALLOWED         NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_MDA_NN  NOT NULL,
+  MAX_DRIVES_ALLOWED_PER_VO  NUMERIC(20, 0),
+  USER_COMMENT               VARCHAR2(1000)   CONSTRAINT MOUNT_POLICY_UC_NN   NOT NULL,
+  CREATION_LOG_USER_NAME     VARCHAR2(100)    CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL,
+  CREATION_LOG_HOST_NAME     VARCHAR2(100)    CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL,
+  CREATION_LOG_TIME          NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_CLT_NN  NOT NULL,
+  LAST_UPDATE_USER_NAME      VARCHAR2(100)    CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL,
+  LAST_UPDATE_HOST_NAME      VARCHAR2(100)    CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL,
+  LAST_UPDATE_TIME           NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_LUT_NN  NOT NULL,
   CONSTRAINT MOUNT_POLICY_PK PRIMARY KEY(MOUNT_POLICY_NAME)
 );
 CREATE TABLE REQUESTER_MOUNT_RULE(
diff --git a/catalogue/3.2/postgres_catalogue_schema.sql b/catalogue/3.2/postgres_catalogue_schema.sql
index b493ab1b28122026a561e05437d2e6376139f9d0..97c504a86668b049deb3bdca2e4f28e2e4814184 100644
--- a/catalogue/3.2/postgres_catalogue_schema.sql
+++ b/catalogue/3.2/postgres_catalogue_schema.sql
@@ -237,19 +237,20 @@ CREATE INDEX TAPE_TAPE_POOL_ID_IDX ON TAPE(TAPE_POOL_ID);
 CREATE INDEX TAPE_IS_DISABLED_IDX ON TAPE(IS_DISABLED);
 CREATE INDEX TAPE_STATE_IDX ON TAPE(TAPE_STATE);
 CREATE TABLE MOUNT_POLICY(
-  MOUNT_POLICY_NAME        VARCHAR(100)    CONSTRAINT MOUNT_POLICY_MPN_NN  NOT NULL,
-  ARCHIVE_PRIORITY         NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_AP_NN   NOT NULL,
-  ARCHIVE_MIN_REQUEST_AGE  NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL,
-  RETRIEVE_PRIORITY        NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_RP_NN   NOT NULL,
-  RETRIEVE_MIN_REQUEST_AGE NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL,
-  MAX_DRIVES_ALLOWED       NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_MDA_NN  NOT NULL,
-  USER_COMMENT             VARCHAR(1000)   CONSTRAINT MOUNT_POLICY_UC_NN   NOT NULL,
-  CREATION_LOG_USER_NAME   VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL,
-  CREATION_LOG_HOST_NAME   VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL,
-  CREATION_LOG_TIME        NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_CLT_NN  NOT NULL,
-  LAST_UPDATE_USER_NAME    VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL,
-  LAST_UPDATE_HOST_NAME    VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL,
-  LAST_UPDATE_TIME         NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_LUT_NN  NOT NULL,
+  MOUNT_POLICY_NAME          VARCHAR(100)    CONSTRAINT MOUNT_POLICY_MPN_NN  NOT NULL,
+  ARCHIVE_PRIORITY           NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_AP_NN   NOT NULL,
+  ARCHIVE_MIN_REQUEST_AGE    NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL,
+  RETRIEVE_PRIORITY          NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_RP_NN   NOT NULL,
+  RETRIEVE_MIN_REQUEST_AGE   NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL,
+  MAX_DRIVES_ALLOWED         NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_MDA_NN  NOT NULL,
+  MAX_DRIVES_ALLOWED_PER_VO  NUMERIC(20, 0),
+  USER_COMMENT               VARCHAR(1000)   CONSTRAINT MOUNT_POLICY_UC_NN   NOT NULL,
+  CREATION_LOG_USER_NAME     VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL,
+  CREATION_LOG_HOST_NAME     VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL,
+  CREATION_LOG_TIME          NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_CLT_NN  NOT NULL,
+  LAST_UPDATE_USER_NAME      VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL,
+  LAST_UPDATE_HOST_NAME      VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL,
+  LAST_UPDATE_TIME           NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_LUT_NN  NOT NULL,
   CONSTRAINT MOUNT_POLICY_PK PRIMARY KEY(MOUNT_POLICY_NAME)
 );
 CREATE TABLE REQUESTER_MOUNT_RULE(
diff --git a/catalogue/3.2/sqlite_catalogue_schema.sql b/catalogue/3.2/sqlite_catalogue_schema.sql
index 698640d708aaa3ca314ce78c17bfa9cc63312ac7..2486c4de7edaa739035f0edc9bc3898a794033ce 100644
--- a/catalogue/3.2/sqlite_catalogue_schema.sql
+++ b/catalogue/3.2/sqlite_catalogue_schema.sql
@@ -209,19 +209,20 @@ CREATE INDEX TAPE_TAPE_POOL_ID_IDX ON TAPE(TAPE_POOL_ID);
 CREATE INDEX TAPE_IS_DISABLED_IDX ON TAPE(IS_DISABLED);
 CREATE INDEX TAPE_STATE_IDX ON TAPE(TAPE_STATE);
 CREATE TABLE MOUNT_POLICY(
-  MOUNT_POLICY_NAME        VARCHAR(100)    CONSTRAINT MOUNT_POLICY_MPN_NN  NOT NULL,
-  ARCHIVE_PRIORITY         INTEGER      CONSTRAINT MOUNT_POLICY_AP_NN   NOT NULL,
-  ARCHIVE_MIN_REQUEST_AGE  INTEGER      CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL,
-  RETRIEVE_PRIORITY        INTEGER      CONSTRAINT MOUNT_POLICY_RP_NN   NOT NULL,
-  RETRIEVE_MIN_REQUEST_AGE INTEGER      CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL,
-  MAX_DRIVES_ALLOWED       INTEGER      CONSTRAINT MOUNT_POLICY_MDA_NN  NOT NULL,
-  USER_COMMENT             VARCHAR(1000)   CONSTRAINT MOUNT_POLICY_UC_NN   NOT NULL,
-  CREATION_LOG_USER_NAME   VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL,
-  CREATION_LOG_HOST_NAME   VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL,
-  CREATION_LOG_TIME        INTEGER      CONSTRAINT MOUNT_POLICY_CLT_NN  NOT NULL,
-  LAST_UPDATE_USER_NAME    VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL,
-  LAST_UPDATE_HOST_NAME    VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL,
-  LAST_UPDATE_TIME         INTEGER      CONSTRAINT MOUNT_POLICY_LUT_NN  NOT NULL,
+  MOUNT_POLICY_NAME          VARCHAR(100)    CONSTRAINT MOUNT_POLICY_MPN_NN  NOT NULL,
+  ARCHIVE_PRIORITY           INTEGER      CONSTRAINT MOUNT_POLICY_AP_NN   NOT NULL,
+  ARCHIVE_MIN_REQUEST_AGE    INTEGER      CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL,
+  RETRIEVE_PRIORITY          INTEGER      CONSTRAINT MOUNT_POLICY_RP_NN   NOT NULL,
+  RETRIEVE_MIN_REQUEST_AGE   INTEGER      CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL,
+  MAX_DRIVES_ALLOWED         INTEGER      CONSTRAINT MOUNT_POLICY_MDA_NN  NOT NULL,
+  MAX_DRIVES_ALLOWED_PER_VO  INTEGER,
+  USER_COMMENT               VARCHAR(1000)   CONSTRAINT MOUNT_POLICY_UC_NN   NOT NULL,
+  CREATION_LOG_USER_NAME     VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL,
+  CREATION_LOG_HOST_NAME     VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL,
+  CREATION_LOG_TIME          INTEGER      CONSTRAINT MOUNT_POLICY_CLT_NN  NOT NULL,
+  LAST_UPDATE_USER_NAME      VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL,
+  LAST_UPDATE_HOST_NAME      VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL,
+  LAST_UPDATE_TIME           INTEGER      CONSTRAINT MOUNT_POLICY_LUT_NN  NOT NULL,
   CONSTRAINT MOUNT_POLICY_PK PRIMARY KEY(MOUNT_POLICY_NAME)
 );
 CREATE TABLE REQUESTER_MOUNT_RULE(
diff --git a/catalogue/AllCatalogueSchema.hpp b/catalogue/AllCatalogueSchema.hpp
index f0d2843c8d4c79d29170e6011e97ffb88a5ff86f..325a0b7e677067b696d08ca8365114abee368e5b 100644
--- a/catalogue/AllCatalogueSchema.hpp
+++ b/catalogue/AllCatalogueSchema.hpp
@@ -7213,19 +7213,20 @@ namespace catalogue{
   "CREATE INDEX TAPE_IS_DISABLED_IDX ON TAPE(IS_DISABLED);"
   "CREATE INDEX TAPE_STATE_IDX ON TAPE(TAPE_STATE);"
   "CREATE TABLE MOUNT_POLICY("
-  "  MOUNT_POLICY_NAME        VARCHAR2(100)    CONSTRAINT MOUNT_POLICY_MPN_NN  NOT NULL,"
-  "  ARCHIVE_PRIORITY         NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_AP_NN   NOT NULL,"
-  "  ARCHIVE_MIN_REQUEST_AGE  NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL,"
-  "  RETRIEVE_PRIORITY        NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_RP_NN   NOT NULL,"
-  "  RETRIEVE_MIN_REQUEST_AGE NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL,"
-  "  MAX_DRIVES_ALLOWED       NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_MDA_NN  NOT NULL,"
-  "  USER_COMMENT             VARCHAR2(1000)   CONSTRAINT MOUNT_POLICY_UC_NN   NOT NULL,"
-  "  CREATION_LOG_USER_NAME   VARCHAR2(100)    CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL,"
-  "  CREATION_LOG_HOST_NAME   VARCHAR2(100)    CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL,"
-  "  CREATION_LOG_TIME        NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_CLT_NN  NOT NULL,"
-  "  LAST_UPDATE_USER_NAME    VARCHAR2(100)    CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL,"
-  "  LAST_UPDATE_HOST_NAME    VARCHAR2(100)    CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL,"
-  "  LAST_UPDATE_TIME         NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_LUT_NN  NOT NULL,"
+  "  MOUNT_POLICY_NAME          VARCHAR2(100)    CONSTRAINT MOUNT_POLICY_MPN_NN  NOT NULL,"
+  "  ARCHIVE_PRIORITY           NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_AP_NN   NOT NULL,"
+  "  ARCHIVE_MIN_REQUEST_AGE    NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL,"
+  "  RETRIEVE_PRIORITY          NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_RP_NN   NOT NULL,"
+  "  RETRIEVE_MIN_REQUEST_AGE   NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL,"
+  "  MAX_DRIVES_ALLOWED         NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_MDA_NN  NOT NULL,"
+  "  MAX_DRIVES_ALLOWED_PER_VO  NUMERIC(20, 0),"
+  "  USER_COMMENT               VARCHAR2(1000)   CONSTRAINT MOUNT_POLICY_UC_NN   NOT NULL,"
+  "  CREATION_LOG_USER_NAME     VARCHAR2(100)    CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL,"
+  "  CREATION_LOG_HOST_NAME     VARCHAR2(100)    CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL,"
+  "  CREATION_LOG_TIME          NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_CLT_NN  NOT NULL,"
+  "  LAST_UPDATE_USER_NAME      VARCHAR2(100)    CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL,"
+  "  LAST_UPDATE_HOST_NAME      VARCHAR2(100)    CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL,"
+  "  LAST_UPDATE_TIME           NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_LUT_NN  NOT NULL,"
   "  CONSTRAINT MOUNT_POLICY_PK PRIMARY KEY(MOUNT_POLICY_NAME)"
   ");"
   "CREATE TABLE REQUESTER_MOUNT_RULE("
@@ -7635,19 +7636,20 @@ namespace catalogue{
   "CREATE INDEX TAPE_IS_DISABLED_IDX ON TAPE(IS_DISABLED);"
   "CREATE INDEX TAPE_STATE_IDX ON TAPE(TAPE_STATE);"
   "CREATE TABLE MOUNT_POLICY("
-  "  MOUNT_POLICY_NAME        VARCHAR(100)    CONSTRAINT MOUNT_POLICY_MPN_NN  NOT NULL,"
-  "  ARCHIVE_PRIORITY         BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_AP_NN   NOT NULL,"
-  "  ARCHIVE_MIN_REQUEST_AGE  BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL,"
-  "  RETRIEVE_PRIORITY        BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_RP_NN   NOT NULL,"
-  "  RETRIEVE_MIN_REQUEST_AGE BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL,"
-  "  MAX_DRIVES_ALLOWED       BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_MDA_NN  NOT NULL,"
-  "  USER_COMMENT             VARCHAR(1000)   CONSTRAINT MOUNT_POLICY_UC_NN   NOT NULL,"
-  "  CREATION_LOG_USER_NAME   VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL,"
-  "  CREATION_LOG_HOST_NAME   VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL,"
-  "  CREATION_LOG_TIME        BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_CLT_NN  NOT NULL,"
-  "  LAST_UPDATE_USER_NAME    VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL,"
-  "  LAST_UPDATE_HOST_NAME    VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL,"
-  "  LAST_UPDATE_TIME         BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_LUT_NN  NOT NULL,"
+  "  MOUNT_POLICY_NAME          VARCHAR(100)    CONSTRAINT MOUNT_POLICY_MPN_NN  NOT NULL,"
+  "  ARCHIVE_PRIORITY           BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_AP_NN   NOT NULL,"
+  "  ARCHIVE_MIN_REQUEST_AGE    BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL,"
+  "  RETRIEVE_PRIORITY          BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_RP_NN   NOT NULL,"
+  "  RETRIEVE_MIN_REQUEST_AGE   BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL,"
+  "  MAX_DRIVES_ALLOWED         BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_MDA_NN  NOT NULL,"
+  "  MAX_DRIVES_ALLOWED_PER_VO  BIGINT UNSIGNED,"
+  "  USER_COMMENT               VARCHAR(1000)   CONSTRAINT MOUNT_POLICY_UC_NN   NOT NULL,"
+  "  CREATION_LOG_USER_NAME     VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL,"
+  "  CREATION_LOG_HOST_NAME     VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL,"
+  "  CREATION_LOG_TIME          BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_CLT_NN  NOT NULL,"
+  "  LAST_UPDATE_USER_NAME      VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL,"
+  "  LAST_UPDATE_HOST_NAME      VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL,"
+  "  LAST_UPDATE_TIME           BIGINT UNSIGNED      CONSTRAINT MOUNT_POLICY_LUT_NN  NOT NULL,"
   "  CONSTRAINT MOUNT_POLICY_PK PRIMARY KEY(MOUNT_POLICY_NAME)"
   ");"
   "CREATE TABLE REQUESTER_MOUNT_RULE("
@@ -8042,19 +8044,20 @@ namespace catalogue{
   "CREATE INDEX TAPE_IS_DISABLED_IDX ON TAPE(IS_DISABLED);"
   "CREATE INDEX TAPE_STATE_IDX ON TAPE(TAPE_STATE);"
   "CREATE TABLE MOUNT_POLICY("
-  "  MOUNT_POLICY_NAME        VARCHAR(100)    CONSTRAINT MOUNT_POLICY_MPN_NN  NOT NULL,"
-  "  ARCHIVE_PRIORITY         INTEGER      CONSTRAINT MOUNT_POLICY_AP_NN   NOT NULL,"
-  "  ARCHIVE_MIN_REQUEST_AGE  INTEGER      CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL,"
-  "  RETRIEVE_PRIORITY        INTEGER      CONSTRAINT MOUNT_POLICY_RP_NN   NOT NULL,"
-  "  RETRIEVE_MIN_REQUEST_AGE INTEGER      CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL,"
-  "  MAX_DRIVES_ALLOWED       INTEGER      CONSTRAINT MOUNT_POLICY_MDA_NN  NOT NULL,"
-  "  USER_COMMENT             VARCHAR(1000)   CONSTRAINT MOUNT_POLICY_UC_NN   NOT NULL,"
-  "  CREATION_LOG_USER_NAME   VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL,"
-  "  CREATION_LOG_HOST_NAME   VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL,"
-  "  CREATION_LOG_TIME        INTEGER      CONSTRAINT MOUNT_POLICY_CLT_NN  NOT NULL,"
-  "  LAST_UPDATE_USER_NAME    VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL,"
-  "  LAST_UPDATE_HOST_NAME    VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL,"
-  "  LAST_UPDATE_TIME         INTEGER      CONSTRAINT MOUNT_POLICY_LUT_NN  NOT NULL,"
+  "  MOUNT_POLICY_NAME          VARCHAR(100)    CONSTRAINT MOUNT_POLICY_MPN_NN  NOT NULL,"
+  "  ARCHIVE_PRIORITY           INTEGER      CONSTRAINT MOUNT_POLICY_AP_NN   NOT NULL,"
+  "  ARCHIVE_MIN_REQUEST_AGE    INTEGER      CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL,"
+  "  RETRIEVE_PRIORITY          INTEGER      CONSTRAINT MOUNT_POLICY_RP_NN   NOT NULL,"
+  "  RETRIEVE_MIN_REQUEST_AGE   INTEGER      CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL,"
+  "  MAX_DRIVES_ALLOWED         INTEGER      CONSTRAINT MOUNT_POLICY_MDA_NN  NOT NULL,"
+  "  MAX_DRIVES_ALLOWED_PER_VO  INTEGER,"
+  "  USER_COMMENT               VARCHAR(1000)   CONSTRAINT MOUNT_POLICY_UC_NN   NOT NULL,"
+  "  CREATION_LOG_USER_NAME     VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL,"
+  "  CREATION_LOG_HOST_NAME     VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL,"
+  "  CREATION_LOG_TIME          INTEGER      CONSTRAINT MOUNT_POLICY_CLT_NN  NOT NULL,"
+  "  LAST_UPDATE_USER_NAME      VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL,"
+  "  LAST_UPDATE_HOST_NAME      VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL,"
+  "  LAST_UPDATE_TIME           INTEGER      CONSTRAINT MOUNT_POLICY_LUT_NN  NOT NULL,"
   "  CONSTRAINT MOUNT_POLICY_PK PRIMARY KEY(MOUNT_POLICY_NAME)"
   ");"
   "CREATE TABLE REQUESTER_MOUNT_RULE("
@@ -8475,19 +8478,20 @@ namespace catalogue{
   "CREATE INDEX TAPE_IS_DISABLED_IDX ON TAPE(IS_DISABLED);"
   "CREATE INDEX TAPE_STATE_IDX ON TAPE(TAPE_STATE);"
   "CREATE TABLE MOUNT_POLICY("
-  "  MOUNT_POLICY_NAME        VARCHAR(100)    CONSTRAINT MOUNT_POLICY_MPN_NN  NOT NULL,"
-  "  ARCHIVE_PRIORITY         NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_AP_NN   NOT NULL,"
-  "  ARCHIVE_MIN_REQUEST_AGE  NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL,"
-  "  RETRIEVE_PRIORITY        NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_RP_NN   NOT NULL,"
-  "  RETRIEVE_MIN_REQUEST_AGE NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL,"
-  "  MAX_DRIVES_ALLOWED       NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_MDA_NN  NOT NULL,"
-  "  USER_COMMENT             VARCHAR(1000)   CONSTRAINT MOUNT_POLICY_UC_NN   NOT NULL,"
-  "  CREATION_LOG_USER_NAME   VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL,"
-  "  CREATION_LOG_HOST_NAME   VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL,"
-  "  CREATION_LOG_TIME        NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_CLT_NN  NOT NULL,"
-  "  LAST_UPDATE_USER_NAME    VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL,"
-  "  LAST_UPDATE_HOST_NAME    VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL,"
-  "  LAST_UPDATE_TIME         NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_LUT_NN  NOT NULL,"
+  "  MOUNT_POLICY_NAME          VARCHAR(100)    CONSTRAINT MOUNT_POLICY_MPN_NN  NOT NULL,"
+  "  ARCHIVE_PRIORITY           NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_AP_NN   NOT NULL,"
+  "  ARCHIVE_MIN_REQUEST_AGE    NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL,"
+  "  RETRIEVE_PRIORITY          NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_RP_NN   NOT NULL,"
+  "  RETRIEVE_MIN_REQUEST_AGE   NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL,"
+  "  MAX_DRIVES_ALLOWED         NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_MDA_NN  NOT NULL,"
+  "  MAX_DRIVES_ALLOWED_PER_VO  NUMERIC(20, 0),"
+  "  USER_COMMENT               VARCHAR(1000)   CONSTRAINT MOUNT_POLICY_UC_NN   NOT NULL,"
+  "  CREATION_LOG_USER_NAME     VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL,"
+  "  CREATION_LOG_HOST_NAME     VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL,"
+  "  CREATION_LOG_TIME          NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_CLT_NN  NOT NULL,"
+  "  LAST_UPDATE_USER_NAME      VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL,"
+  "  LAST_UPDATE_HOST_NAME      VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL,"
+  "  LAST_UPDATE_TIME           NUMERIC(20, 0)      CONSTRAINT MOUNT_POLICY_LUT_NN  NOT NULL,"
   "  CONSTRAINT MOUNT_POLICY_PK PRIMARY KEY(MOUNT_POLICY_NAME)"
   ");"
   "CREATE TABLE REQUESTER_MOUNT_RULE("
diff --git a/catalogue/common_catalogue_schema.sql b/catalogue/common_catalogue_schema.sql
index 30554b572fd842d1fa4555a0abe6f2eaefe948f4..5c3d3ec6b9ec51aee42dedf5983be9fd8bb7e1e1 100644
--- a/catalogue/common_catalogue_schema.sql
+++ b/catalogue/common_catalogue_schema.sql
@@ -188,19 +188,20 @@ CREATE INDEX TAPE_TAPE_POOL_ID_IDX ON TAPE(TAPE_POOL_ID);
 CREATE INDEX TAPE_IS_DISABLED_IDX ON TAPE(IS_DISABLED);
 CREATE INDEX TAPE_STATE_IDX ON TAPE(TAPE_STATE);
 CREATE TABLE MOUNT_POLICY(
-  MOUNT_POLICY_NAME        VARCHAR(100)    CONSTRAINT MOUNT_POLICY_MPN_NN  NOT NULL,
-  ARCHIVE_PRIORITY         UINT64TYPE      CONSTRAINT MOUNT_POLICY_AP_NN   NOT NULL,
-  ARCHIVE_MIN_REQUEST_AGE  UINT64TYPE      CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL,
-  RETRIEVE_PRIORITY        UINT64TYPE      CONSTRAINT MOUNT_POLICY_RP_NN   NOT NULL,
-  RETRIEVE_MIN_REQUEST_AGE UINT64TYPE      CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL,
-  MAX_DRIVES_ALLOWED       UINT64TYPE      CONSTRAINT MOUNT_POLICY_MDA_NN  NOT NULL,
-  USER_COMMENT             VARCHAR(1000)   CONSTRAINT MOUNT_POLICY_UC_NN   NOT NULL,
-  CREATION_LOG_USER_NAME   VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL,
-  CREATION_LOG_HOST_NAME   VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL,
-  CREATION_LOG_TIME        UINT64TYPE      CONSTRAINT MOUNT_POLICY_CLT_NN  NOT NULL,
-  LAST_UPDATE_USER_NAME    VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL,
-  LAST_UPDATE_HOST_NAME    VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL,
-  LAST_UPDATE_TIME         UINT64TYPE      CONSTRAINT MOUNT_POLICY_LUT_NN  NOT NULL,
+  MOUNT_POLICY_NAME          VARCHAR(100)    CONSTRAINT MOUNT_POLICY_MPN_NN  NOT NULL,
+  ARCHIVE_PRIORITY           UINT64TYPE      CONSTRAINT MOUNT_POLICY_AP_NN   NOT NULL,
+  ARCHIVE_MIN_REQUEST_AGE    UINT64TYPE      CONSTRAINT MOUNT_POLICY_AMRA_NN NOT NULL,
+  RETRIEVE_PRIORITY          UINT64TYPE      CONSTRAINT MOUNT_POLICY_RP_NN   NOT NULL,
+  RETRIEVE_MIN_REQUEST_AGE   UINT64TYPE      CONSTRAINT MOUNT_POLICY_RMRA_NN NOT NULL,
+  MAX_DRIVES_ALLOWED         UINT64TYPE      CONSTRAINT MOUNT_POLICY_MDA_NN  NOT NULL,
+  MAX_DRIVES_ALLOWED_PER_VO  UINT64TYPE,
+  USER_COMMENT               VARCHAR(1000)   CONSTRAINT MOUNT_POLICY_UC_NN   NOT NULL,
+  CREATION_LOG_USER_NAME     VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLUN_NN NOT NULL,
+  CREATION_LOG_HOST_NAME     VARCHAR(100)    CONSTRAINT MOUNT_POLICY_CLHN_NN NOT NULL,
+  CREATION_LOG_TIME          UINT64TYPE      CONSTRAINT MOUNT_POLICY_CLT_NN  NOT NULL,
+  LAST_UPDATE_USER_NAME      VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUUN_NN NOT NULL,
+  LAST_UPDATE_HOST_NAME      VARCHAR(100)    CONSTRAINT MOUNT_POLICY_LUHN_NN NOT NULL,
+  LAST_UPDATE_TIME           UINT64TYPE      CONSTRAINT MOUNT_POLICY_LUT_NN  NOT NULL,
   CONSTRAINT MOUNT_POLICY_PK PRIMARY KEY(MOUNT_POLICY_NAME)
 );
 CREATE TABLE REQUESTER_MOUNT_RULE(