4 * Oracle schema for FreeRADIUS
7 * NOTE: Which columns are NULLable??
11 * Table structure for table 'dictionary'
13 CREATE TABLE dictionary (
16 attribute VARCHAR(32),
21 CREATE SEQUENCE dictionary_seq START WITH 1 INCREMENT BY 1;
24 * Table structure for table 'nas'
30 shortname VARCHAR(32),
34 community VARCHAR(50),
35 description VARCHAR(200)
37 CREATE SEQUENCE nas_seq START WITH 1 INCREMENT BY 1;
40 * Table structure for table 'radacct'
42 CREATE TABLE radacct (
43 radacctid INT PRIMARY KEY,
44 acctsessionid VARCHAR(32) NOT NULL,
45 acctuniqueid VARCHAR(32),
46 username VARCHAR(32) NOT NULL,
47 groupname VARCHAR(32) NOT NULL,
49 nasipaddress VARCHAR(15) NOT NULL,
50 nasportid NUMERIC(12),
51 nasporttype VARCHAR(32),
52 acctstarttime TIMESTAMP WITH TIME ZONE,
53 acctstoptime TIMESTAMP WITH TIME ZONE,
54 acctsessiontime NUMERIC(12),
55 acctauthentic VARCHAR(32),
56 connectinfo_start VARCHAR(50),
57 connectinfo_stop VARCHAR(50),
58 acctinputoctets NUMERIC(12),
59 acctoutputoctets NUMERIC(12),
60 calledstationid VARCHAR(50),
61 callingstationid VARCHAR(50),
62 acctterminatecause VARCHAR(32),
63 servicetype VARCHAR(32),
64 framedprotocol VARCHAR(32),
65 framedipaddress VARCHAR(15),
66 acctstartdelay NUMERIC(12),
67 acctstopdelay NUMERIC(12)
69 CREATE UNIQUE INDEX radacct_idx1
70 ON radacct(acctsessionid,username,acctstarttime,
71 acctstoptime,nasipaddress,framedipaddress);
73 CREATE SEQUENCE radacct_seq START WITH 1 INCREMENT BY 1;
75 /* Trigger to emulate a serial # on the primary key */
76 CREATE OR REPLACE TRIGGER radacct_serialnumber
77 BEFORE INSERT OR UPDATE OF radacctid ON radacct
80 if ( :new.radacctid = 0 or :new.radacctid is null ) then
81 SELECT radacct_seq.nextval into :new.radacctid from dual;
87 * Table structure for table 'radcheck'
89 CREATE TABLE radcheck (
91 username VARCHAR(30) NOT NULL,
92 attribute VARCHAR(30),
93 op VARCHAR(2) NOT NULL,
96 CREATE SEQUENCE radcheck_seq START WITH 1 INCREMENT BY 1;
98 /* Trigger to emulate a serial # on the primary key */
99 CREATE OR REPLACE TRIGGER radcheck_serialnumber
100 BEFORE INSERT OR UPDATE OF id ON radcheck
103 if ( :new.id = 0 or :new.id is null ) then
104 SELECT radcheck_seq.nextval into :new.id from dual;
110 * Table structure for table 'radgroupcheck'
112 CREATE TABLE radgroupcheck (
114 groupname VARCHAR(20) UNIQUE NOT NULL,
115 attribute VARCHAR(40),
116 op VARCHAR(2) NOT NULL,
119 CREATE SEQUENCE radgroupcheck_seq START WITH 1 INCREMENT BY 1;
122 * Table structure for table 'radgroupreply'
124 CREATE TABLE radgroupreply (
126 GroupName VARCHAR(20) UNIQUE NOT NULL,
127 Attribute VARCHAR(40),
128 op VARCHAR(2) NOT NULL,
131 CREATE SEQUENCE radgroupreply_seq START WITH 1 INCREMENT BY 1;
134 * Table structure for table 'radreply'
136 CREATE TABLE radreply (
138 UserName VARCHAR(30) NOT NULL,
139 Attribute VARCHAR(30),
140 op VARCHAR(2) NOT NULL,
143 CREATE INDEX radreply_idx1 ON radreply(UserName);
144 CREATE SEQUENCE radreply_seq START WITH 1 INCREMENT BY 1;
146 /* Trigger to emulate a serial # on the primary key */
147 CREATE OR REPLACE TRIGGER radreply_serialnumber
148 BEFORE INSERT OR UPDATE OF id ON radreply
151 if ( :new.id = 0 or :new.id is null ) then
152 SELECT radreply_seq.nextval into :new.id from dual;
158 * Table structure for table 'usergroup'
160 CREATE TABLE usergroup (
162 UserName VARCHAR(30) UNIQUE NOT NULL,
163 GroupName VARCHAR(30)
165 CREATE SEQUENCE usergroup_seq START WITH 1 INCREMENT BY 1;
167 /* Trigger to emulate a serial # on the primary key */
168 CREATE OR REPLACE TRIGGER usergroup_serialnumber
169 BEFORE INSERT OR UPDATE OF id ON usergroup
172 if ( :new.id = 0 or :new.id is null ) then
173 SELECT usergroup_seq.nextval into :new.id from dual;
180 * Table structure for table 'realmgroup'
182 CREATE TABLE realmgroup (
184 RealmName VARCHAR(30) UNIQUE NOT NULL,
185 GroupName VARCHAR(30)
187 CREATE SEQUENCE realmgroup_seq START WITH 1 INCREMENT BY 1;
189 CREATE TABLE realms (
191 realmname VARCHAR(64),
196 CREATE SEQUENCE realms_seq START WITH 1 INCREMENT BY 1;