createAclSchema.sql 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. -- ACL Schema SQL
  2. -- DROP TABLE ACL_ENTRY;
  3. -- DROP TABLE ACL_OBJECT_IDENTITY;
  4. -- DROP TABLE ACL_CLASS;
  5. -- DROP TABLE ACL_SID;
  6. CREATE TABLE ACL_SID(
  7. ID BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 100) NOT NULL PRIMARY KEY,
  8. PRINCIPAL BOOLEAN NOT NULL,
  9. SID VARCHAR_IGNORECASE(100) NOT NULL,
  10. CONSTRAINT UNIQUE_UK_1 UNIQUE(SID,PRINCIPAL));
  11. CREATE TABLE ACL_CLASS(
  12. ID BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 100) NOT NULL PRIMARY KEY,
  13. CLASS VARCHAR_IGNORECASE(100) NOT NULL,
  14. CONSTRAINT UNIQUE_UK_2 UNIQUE(CLASS));
  15. CREATE TABLE ACL_OBJECT_IDENTITY(
  16. ID BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 100) NOT NULL PRIMARY KEY,
  17. OBJECT_ID_CLASS BIGINT NOT NULL,
  18. OBJECT_ID_IDENTITY BIGINT NOT NULL,
  19. PARENT_OBJECT BIGINT,
  20. OWNER_SID BIGINT,
  21. ENTRIES_INHERITING BOOLEAN NOT NULL,
  22. CONSTRAINT UNIQUE_UK_3 UNIQUE(OBJECT_ID_CLASS,OBJECT_ID_IDENTITY),
  23. CONSTRAINT FOREIGN_FK_1 FOREIGN KEY(PARENT_OBJECT)REFERENCES ACL_OBJECT_IDENTITY(ID),
  24. CONSTRAINT FOREIGN_FK_2 FOREIGN KEY(OBJECT_ID_CLASS)REFERENCES ACL_CLASS(ID),
  25. CONSTRAINT FOREIGN_FK_3 FOREIGN KEY(OWNER_SID)REFERENCES ACL_SID(ID));
  26. CREATE TABLE ACL_ENTRY(
  27. ID BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 100) NOT NULL PRIMARY KEY,
  28. ACL_OBJECT_IDENTITY BIGINT NOT NULL,
  29. ACE_ORDER INT NOT NULL,
  30. SID BIGINT NOT NULL,
  31. MASK INTEGER NOT NULL,
  32. GRANTING BOOLEAN NOT NULL,
  33. AUDIT_SUCCESS BOOLEAN NOT NULL,
  34. AUDIT_FAILURE BOOLEAN NOT NULL,
  35. CONSTRAINT UNIQUE_UK_4 UNIQUE(ACL_OBJECT_IDENTITY,ACE_ORDER),
  36. CONSTRAINT FOREIGN_FK_4 FOREIGN KEY(ACL_OBJECT_IDENTITY) REFERENCES ACL_OBJECT_IDENTITY(ID),
  37. CONSTRAINT FOREIGN_FK_5 FOREIGN KEY(SID) REFERENCES ACL_SID(ID));