blob: 13c01c913cd7bf176b95d4a28708c13668a23c34 [file] [log] [blame]
SELECT '< HIVE-78 Authorization model for Hive >';
--
-- Table: ROLES
--
CREATE TABLE "ROLES" (
"ROLE_ID" bigint NOT NULL,
"CREATE_TIME" bigint NOT NULL,
"OWNER_NAME" character varying(128) DEFAULT NULL,
"ROLE_NAME" character varying(128) DEFAULT NULL,
PRIMARY KEY ("ROLE_ID"),
CONSTRAINT "ROLEENTITYINDEX" UNIQUE ("ROLE_NAME")
);
--
-- Table: ROLE_MAP
--
CREATE TABLE "ROLE_MAP" (
"ROLE_GRANT_ID" bigint NOT NULL,
"ADD_TIME" bigint NOT NULL,
"GRANT_OPTION" smallint NOT NULL,
"GRANTOR" character varying(128) DEFAULT NULL,
"GRANTOR_TYPE" character varying(128) DEFAULT NULL,
"PRINCIPAL_NAME" character varying(128) DEFAULT NULL,
"PRINCIPAL_TYPE" character varying(128) DEFAULT NULL,
"ROLE_ID" bigint DEFAULT NULL,
PRIMARY KEY ("ROLE_GRANT_ID"),
CONSTRAINT "USERROLEMAPINDEX" UNIQUE ("PRINCIPAL_NAME", "ROLE_ID", "GRANTOR", "GRANTOR_TYPE")
);
--
-- Table: GLOBAL_PRIVS
--
CREATE TABLE "GLOBAL_PRIVS" (
"USER_GRANT_ID" bigint NOT NULL,
"CREATE_TIME" bigint NOT NULL,
"GRANT_OPTION" smallint NOT NULL,
"GRANTOR" character varying(128) DEFAULT NULL,
"GRANTOR_TYPE" character varying(128) DEFAULT NULL,
"PRINCIPAL_NAME" character varying(128) DEFAULT NULL,
"PRINCIPAL_TYPE" character varying(128) DEFAULT NULL,
"USER_PRIV" character varying(128) DEFAULT NULL,
PRIMARY KEY ("USER_GRANT_ID"),
CONSTRAINT "GLOBALPRIVILEGEINDEX" UNIQUE ("PRINCIPAL_NAME", "PRINCIPAL_TYPE", "USER_PRIV", "GRANTOR", "GRANTOR_TYPE")
);
--
-- Table: DB_PRIVS
--
CREATE TABLE "DB_PRIVS" (
"DB_GRANT_ID" bigint NOT NULL,
"CREATE_TIME" bigint NOT NULL,
"DB_ID" bigint DEFAULT NULL,
"GRANT_OPTION" smallint NOT NULL,
"GRANTOR" character varying(128) DEFAULT NULL,
"GRANTOR_TYPE" character varying(128) DEFAULT NULL,
"PRINCIPAL_NAME" character varying(128) DEFAULT NULL,
"PRINCIPAL_TYPE" character varying(128) DEFAULT NULL,
"DB_PRIV" character varying(128) DEFAULT NULL,
PRIMARY KEY ("DB_GRANT_ID"),
CONSTRAINT "DBPRIVILEGEINDEX" UNIQUE ("DB_ID", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "DB_PRIV", "GRANTOR", "GRANTOR_TYPE")
);
--
-- Table: TBL_PRIVS
--
CREATE TABLE "TBL_PRIVS" (
"TBL_GRANT_ID" bigint NOT NULL,
"CREATE_TIME" bigint NOT NULL,
"GRANT_OPTION" smallint NOT NULL,
"GRANTOR" character varying(128) DEFAULT NULL,
"GRANTOR_TYPE" character varying(128) DEFAULT NULL,
"PRINCIPAL_NAME" character varying(128) DEFAULT NULL,
"PRINCIPAL_TYPE" character varying(128) DEFAULT NULL,
"TBL_PRIV" character varying(128) DEFAULT NULL,
"TBL_ID" bigint DEFAULT NULL,
PRIMARY KEY ("TBL_GRANT_ID")
);
CREATE INDEX "TABLEPRIVILEGEINDEX" on "TBL_PRIVS" ("TBL_ID", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "TBL_PRIV", "GRANTOR", "GRANTOR_TYPE");
--
-- Table: TBL_COL_PRIVS
--
CREATE TABLE "TBL_COL_PRIVS" (
"TBL_COLUMN_GRANT_ID" bigint NOT NULL,
"COLUMN_NAME" character varying(128) DEFAULT NULL,
"CREATE_TIME" bigint NOT NULL,
"GRANT_OPTION" smallint NOT NULL,
"GRANTOR" character varying(128) DEFAULT NULL,
"GRANTOR_TYPE" character varying(128) DEFAULT NULL,
"PRINCIPAL_NAME" character varying(128) DEFAULT NULL,
"PRINCIPAL_TYPE" character varying(128) DEFAULT NULL,
"TBL_COL_PRIV" character varying(128) DEFAULT NULL,
"TBL_ID" bigint DEFAULT NULL,
PRIMARY KEY ("TBL_COLUMN_GRANT_ID")
);
CREATE INDEX "TABLECOLUMNPRIVILEGEINDEX" on "TBL_COL_PRIVS" ("TBL_ID", "COLUMN_NAME", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "TBL_COL_PRIV", "GRANTOR", "GRANTOR_TYPE");
--
-- Table: PART_PRIVS
--
CREATE TABLE "PART_PRIVS" (
"PART_GRANT_ID" bigint NOT NULL,
"CREATE_TIME" bigint NOT NULL,
"GRANT_OPTION" smallint NOT NULL,
"GRANTOR" character varying(128) DEFAULT NULL,
"GRANTOR_TYPE" character varying(128) DEFAULT NULL,
"PART_ID" bigint DEFAULT NULL,
"PRINCIPAL_NAME" character varying(128) DEFAULT NULL,
"PRINCIPAL_TYPE" character varying(128) DEFAULT NULL,
"PART_PRIV" character varying(128) DEFAULT NULL,
PRIMARY KEY ("PART_GRANT_ID")
);
CREATE INDEX "PARTPRIVILEGEINDEX" on "PART_PRIVS" ("PART_ID", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "PART_PRIV", "GRANTOR", "GRANTOR_TYPE");
--
-- Table: PART_COL_PRIVS
--
CREATE TABLE "PART_COL_PRIVS" (
"PART_COLUMN_GRANT_ID" bigint NOT NULL,
"COLUMN_NAME" character varying(128) DEFAULT NULL,
"CREATE_TIME" bigint NOT NULL,
"GRANT_OPTION" smallint NOT NULL,
"GRANTOR" character varying(128) DEFAULT NULL,
"GRANTOR_TYPE" character varying(128) DEFAULT NULL,
"PART_ID" bigint DEFAULT NULL,
"PRINCIPAL_NAME" character varying(128) DEFAULT NULL,
"PRINCIPAL_TYPE" character varying(128) DEFAULT NULL,
"PART_COL_PRIV" character varying(128) DEFAULT NULL,
PRIMARY KEY ("PART_COLUMN_GRANT_ID")
);
CREATE INDEX "PARTITIONCOLUMNPRIVILEGEINDEX" on "PART_COL_PRIVS" ("PART_ID", "COLUMN_NAME", "PRINCIPAL_NAME", "PRINCIPAL_TYPE", "PART_COL_PRIV", "GRANTOR", "GRANTOR_TYPE");
--
-- Foreign Key Definitions
--
ALTER TABLE "ROLE_MAP" ADD FOREIGN KEY ("ROLE_ID")
REFERENCES "ROLES" ("ROLE_ID") DEFERRABLE;
ALTER TABLE "DB_PRIVS" ADD FOREIGN KEY ("DB_ID")
REFERENCES "DBS" ("DB_ID") DEFERRABLE;
ALTER TABLE "TBL_PRIVS" ADD FOREIGN KEY ("TBL_ID")
REFERENCES "TBLS" ("TBL_ID") DEFERRABLE;
ALTER TABLE "TBL_COL_PRIVS" ADD FOREIGN KEY ("TBL_ID")
REFERENCES "TBLS" ("TBL_ID") DEFERRABLE;
ALTER TABLE "PART_PRIVS" ADD FOREIGN KEY ("PART_ID")
REFERENCES "PARTITIONS" ("PART_ID") DEFERRABLE;
ALTER TABLE "PART_COL_PRIVS" ADD FOREIGN KEY ("PART_ID")
REFERENCES "PARTITIONS" ("PART_ID") DEFERRABLE;