createAclSchemaPostgres.sql 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. -- ACL Schema SQL for PostgreSQL
  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 bigserial not null primary key,
  8. principal boolean not null,
  9. sid varchar(100) not null,
  10. constraint unique_uk_1 unique(sid,principal)
  11. );
  12. create table acl_class(
  13. id bigserial not null primary key,
  14. class varchar(100) not null,
  15. class_id_type varchar(100),
  16. constraint unique_uk_2 unique(class)
  17. );
  18. create table acl_object_identity(
  19. id bigserial primary key,
  20. object_id_class bigint not null,
  21. object_id_identity varchar(36) not null,
  22. parent_object bigint,
  23. owner_sid bigint,
  24. entries_inheriting boolean not null,
  25. constraint unique_uk_3 unique(object_id_class,object_id_identity),
  26. constraint foreign_fk_1 foreign key(parent_object)references acl_object_identity(id),
  27. constraint foreign_fk_2 foreign key(object_id_class)references acl_class(id),
  28. constraint foreign_fk_3 foreign key(owner_sid)references acl_sid(id)
  29. );
  30. create table acl_entry(
  31. id bigserial primary key,
  32. acl_object_identity bigint not null,
  33. ace_order int not null,
  34. sid bigint not null,
  35. mask integer not null,
  36. granting boolean not null,
  37. audit_success boolean not null,
  38. audit_failure boolean not null,
  39. constraint unique_uk_4 unique(acl_object_identity,ace_order),
  40. constraint foreign_fk_4 foreign key(acl_object_identity) references acl_object_identity(id),
  41. constraint foreign_fk_5 foreign key(sid) references acl_sid(id)
  42. );