Welcome 微信登录

首页 / 数据库 / MySQL / Spring Security ACL使用Oracle数据库的配置与数据库脚本

在Spring Security的官方文档上面只给出了关于security ACL的hsql脚本,但是在使用Oracle数据库时spring没有明确给出数据库创建脚本和配置说明,以下是自己在使用Oracle数据库时使用到的sql脚本和配置sql脚本如下
  1. --------------------------------------------------------   
  2. -- Create sequences   
  3. --------------------------------------------------------   
  4. CREATE SEQUENCE "ACL_CLASS_SEQ"  
  5.   INCREMENT BY 1  
  6.   MAXVALUE 9999999999999999999999999999  
  7.   START WITH 1  
  8.   CACHE 20  
  9.   NOORDER   
  10.   NOCYCLE;   
  11.     
  12. CREATE SEQUENCE "ACL_ENTRY_SEQ"  
  13.   INCREMENT BY 1  
  14.   MAXVALUE 9999999999999999999999999999  
  15.   START WITH 1  
  16.   CACHE 20  
  17.   NOORDER   
  18.   NOCYCLE;   
  19.     
  20. CREATE SEQUENCE "ACL_OBJECT_IDENTITY_SEQ"  
  21.   INCREMENT BY 1  
  22.   MAXVALUE 9999999999999999999999999999  
  23.   START WITH 1  
  24.   CACHE 20  
  25.   NOORDER   
  26.   NOCYCLE;   
  27.     
  28. CREATE SEQUENCE "ACL_SID_SEQ"  
  29.   INCREMENT BY 1  
  30.   MAXVALUE 9999999999999999999999999999  
  31.   START WITH 1  
  32.   CACHE 20  
  33.   NOORDER   
  34.   NOCYCLE;   
  35.     
  36. --------------------------------------------------------   
  37. -- ACL_CLASS Table   
  38. --------------------------------------------------------   
  39. CREATE TABLE "ACL_CLASS" (   
  40.   "ID" NUMBER(19,0) NOT NULL,   
  41.   "CLASS" VARCHAR2(100) NOT NULL,   
  42.   PRIMARY KEY ("ID"),   
  43.   CONSTRAINT "ACL_CLASS_CLASS_UQ" UNIQUE ("CLASS")   
  44. )TABLESPACE &TSDATA;   
  45.     
  46. --------------------------------------------------------   
  47. -- ACL_ENTRY Table   
  48. --------------------------------------------------------   
  49. CREATE TABLE "ACL_ENTRY" (   
  50.   "ID" NUMBER(19,0) NOT NULL,   
  51.   "ACL_OBJECT_IDENTITY" NUMBER(19,0) NOT NULL,   
  52.   "ACE_ORDER" NUMBER(19,0) NOT NULL,   
  53.   "SID" NUMBER(19,0) NOT NULL,   
  54.   "MASK" NUMBER(19,0) NOT NULL,   
  55.   "GRANTING" NUMBER(1,0) NOT NULL,   
  56.   "AUDIT_SUCCESS" NUMBER(1,0) NOT NULL,   
  57.   "AUDIT_FAILURE" NUMBER(1,0) NOT NULL,   
  58.   PRIMARY KEY ("ID"),   
  59.   CONSTRAINT "ACL_ENTRY_IDENT_ORDER_UQ" UNIQUE ("ACL_OBJECT_IDENTITY""ACE_ORDER")   
  60. )TABLESPACE &TSDATA;   
  61.     
  62. ALTER TABLE "ACL_ENTRY" ADD CONSTRAINT "ACL_ENTRY_GRANTING_CK"  
  63.   CHECK ("GRANTING" in (1,0));   
  64. ALTER TABLE "ACL_ENTRY" ADD CONSTRAINT "ACL_ENTRY_AUDIT_SUCCESS_CK"  
  65.   CHECK ("AUDIT_SUCCESS" in (1,0));   
  66. ALTER TABLE "ACL_ENTRY" ADD CONSTRAINT "ACL_ENTRY_AUDIT_FAILURE_CK"  
  67.   CHECK ("AUDIT_FAILURE" in (1,0));   
  68.     
  69. --------------------------------------------------------   
  70. -- ACL_OBJECT_IDENTITY Table   
  71. --------------------------------------------------------   
  72. CREATE TABLE "ACL_OBJECT_IDENTITY" (   
  73.   "ID" NUMBER(19,0) NOT NULL,   
  74.   "OBJECT_ID_CLASS" NUMBER(19,0) NOT NULL,   
  75.   "OBJECT_ID_IDENTITY" NUMBER(19,0) NOT NULL,   
  76.   "PARENT_OBJECT" NUMBER(19,0),   
  77.   "OWNER_SID" NUMBER(19,0) NOT NULL,   
  78.   "ENTRIES_INHERITING" NUMBER(1,0) NOT NULL,   
  79.   PRIMARY KEY ("ID"),   
  80.   CONSTRAINT "ACL_OBJ_ID_CLASS_IDENT_UQ" UNIQUE ("OBJECT_ID_CLASS""OBJECT_ID_IDENTITY")   
  81. )TABLESPACE &TSDATA;   
  82.     
  83. ALTER TABLE "ACL_OBJECT_IDENTITY" ADD CONSTRAINT "ACL_OBJ_ID_ENTRIES_CK"  
  84.   CHECK ("ENTRIES_INHERITING" in (1,0));   
  85.     
  86. --------------------------------------------------------   
  87. -- ACL_SID Table   
  88. --------------------------------------------------------   
  89. CREATE TABLE "ACL_SID" (   
  90.   "ID" NUMBER(19,0) NOT NULL,   
  91.   "PRINCIPAL" NUMBER(1,0) NOT NULL,   
  92.   "SID" VARCHAR2(100) NOT NULL,   
  93.   PRIMARY KEY ("ID"),   
  94.   CONSTRAINT "ACL_SID_PRINCIPAL_SID_UQ" UNIQUE ("SID""PRINCIPAL")   
  95. )TABLESPACE &TSDATA;   
  96.     
  97. ALTER TABLE "ACL_SID" ADD CONSTRAINT "ACL_SID_PRINCIPAL_CK"  
  98.   CHECK ("PRINCIPAL" in (1,0));   
  99.     
  100. --------------------------------------------------------   
  101. -- Relationships   
  102. --------------------------------------------------------   
  103.     
  104. ALTER TABLE "ACL_ENTRY" ADD CONSTRAINT "FK_ACL_ENTRY_ACL_OBJECT_ID"  
  105.   FOREIGN KEY ("ACL_OBJECT_IDENTITY")   
  106.   REFERENCES "ACL_OBJECT_IDENTITY" ("ID");   
  107. ALTER TABLE "ACL_ENTRY" ADD CONSTRAINT "FK_ACL_ENTRY_SID"  
  108.   FOREIGN KEY ("SID")   
  109.   REFERENCES "ACL_SID" ("ID");   
  110.     
  111. ALTER TABLE "ACL_OBJECT_IDENTITY" ADD CONSTRAINT "FK_ACL_OBJ_ID_CLASS"  
  112.   FOREIGN KEY ("OBJECT_ID_CLASS")   
  113.   REFERENCES "ACL_CLASS" ("ID");   
  114. ALTER TABLE "ACL_OBJECT_IDENTITY" ADD CONSTRAINT "FK_ACL_OBJ_ID_PARENT"  
  115.   FOREIGN KEY ("PARENT_OBJECT")   
  116.   REFERENCES "ACL_OBJECT_IDENTITY" ("ID");   
  117. ALTER TABLE "ACL_OBJECT_IDENTITY" ADD CONSTRAINT "FK_ACL_OBJ_ID_SID"  
  118.   FOREIGN KEY ("OWNER_SID")   
  119.   REFERENCES "ACL_SID" ("ID");   
  120.     
  121. --------------------------------------------------------   
  122. -- Triggers   
  123. --------------------------------------------------------   
  124. CREATE OR REPLACE TRIGGER "ACL_CLASS_ID"  
  125. BEFORE INSERT ON ACL_CLASS   
  126. FOR EACH ROW   
  127.   BEGIN   
  128.     SELECT ACL_CLASS_SEQ.NEXTVAL INTO :new.id FROM dual;   
  129.   END;   
  130. /   
  131.     
  132. CREATE OR REPLACE TRIGGER "ACL_ENTRY_ID"  
  133. BEFORE INSERT ON ACL_ENTRY   
  134. FOR EACH ROW   
  135.   BEGIN   
  136.     SELECT ACL_ENTRY_SEQ.NEXTVAL INTO :new.id FROM dual;   
  137.   END;   
  138. /   
  139.     
  140. CREATE OR REPLACE TRIGGER "ACL_OBJECT_IDENTITY_ID"  
  141. BEFORE INSERT ON ACL_OBJECT_IDENTITY   
  142. FOR EACH ROW   
  143.   BEGIN   
  144.     SELECT ACL_OBJECT_IDENTITY_SEQ.NEXTVAL INTO :new.id FROM dual;   
  145.   END;   
  146. /   
  147.     
  148. CREATE OR REPLACE TRIGGER "ACL_SID_ID"  
  149. BEFORE INSERT ON ACL_SID   
  150. FOR EACH ROW   
  151.   BEGIN   
  152.     SELECT ACL_SID_SEQ.NEXTVAL INTO :new.id FROM dual;   
  153.   END;   
  154. /  
spring配置片段如下
  1. <beans:bean id="aclService" class="org.springframework.security.acls.jdbc.JdbcMutableAclService">  
  2.     <beans:constructor-arg ref="dataSource" />  
  3.     <beans:constructor-arg ref="lookupStrategy" />  
  4.     <beans:constructor-arg ref="aclCache" />  
  5.        
  6.     <beans:property name="classIdentityQuery" value="select ACL_CLASS_SEQ.currval from dual"/>  
  7.     <beans:property name="sidIdentityQuery" value="select ACL_SID_SEQ.currval from dual"/>  
  8. </beans:bean>  
Spring Security ACL使用MySQL配置与数据库脚本Oracle 10G RAC数据库日志报错LMS 0: 8069 GCS shadows traversed, 4001 replayed相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数