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'
25 * This is not currently used but FreeRADIUS but is usefull for reporting
32 shortname VARCHAR(32),
37 community VARCHAR(50),
39 naslocation VARCHAR(10)
41 CREATE SEQUENCE nas_seq START WITH 1 INCREMENT BY 1;
44 * Table structure for table 'radacct'
46 CREATE TABLE radacct (
47 radacctid INT PRIMARY KEY,
48 acctsessionid VARCHAR(32) NOT NULL,
49 acctuniqueid VARCHAR(32),
50 username VARCHAR(32) NOT NULL,
52 nasipaddress VARCHAR(15) NOT NULL,
53 nasportid NUMERIC(12),
54 nasporttype VARCHAR(32),
57 acctsessiontime NUMERIC(12),
58 acctauthentic VARCHAR(32),
59 connectinfo_start VARCHAR(32),
60 connectinfo_stop VARCHAR(32),
61 acctinputoctets NUMERIC(12),
62 acctoutputoctets NUMERIC(12),
63 calledstationid VARCHAR(50),
64 callingstationid VARCHAR(50),
65 acctterminatecause VARCHAR(32),
66 servicetype VARCHAR(32),
67 framedprotocol VARCHAR(32),
68 framedipaddress VARCHAR(15),
69 acctstartdelay NUMERIC(12),
70 acctstopdelay NUMERIC(12)
72 CREATE UNIQUE INDEX radacct_idx1
73 ON radacct(acctsessionid,username,acctstarttime,
74 acctstoptime,nasipaddress,framedipaddress);
76 CREATE SEQUENCE radacct_seq START WITH 1 INCREMENT BY 1;
78 /* Trigger to emulate a serial # on the primary key */
79 CREATE OR REPLACE TRIGGER radacct_serialnumber
80 BEFORE INSERT OR UPDATE OF radacctid ON radacct
83 if ( :new.radacctid = 0 or :new.radacctid is null ) then
84 SELECT radacct_seq.nextval into :new.radacctid from dual;
90 * Table structure for table 'radcheck'
92 CREATE TABLE radcheck (
94 username VARCHAR(30) NOT NULL,
95 attribute VARCHAR(30),
96 op VARCHAR(2) NOT NULL,
99 CREATE SEQUENCE radcheck_seq START WITH 1 INCREMENT BY 1;
101 /* Trigger to emulate a serial # on the primary key */
102 CREATE OR REPLACE TRIGGER radcheck_serialnumber
103 BEFORE INSERT OR UPDATE OF id ON radcheck
106 if ( :new.id = 0 or :new.id is null ) then
107 SELECT radcheck_seq.nextval into :new.id from dual;
113 * Table structure for table 'radgroupcheck'
115 CREATE TABLE radgroupcheck (
117 groupname VARCHAR(20) UNIQUE NOT NULL,
118 attribute VARCHAR(40),
119 op VARCHAR(2) NOT NULL,
122 CREATE SEQUENCE radgroupcheck_seq START WITH 1 INCREMENT BY 1;
125 * Table structure for table 'radgroupreply'
127 CREATE TABLE radgroupreply (
129 GroupName VARCHAR(20) UNIQUE NOT NULL,
130 Attribute VARCHAR(40),
131 op VARCHAR(2) NOT NULL,
134 CREATE SEQUENCE radgroupreply_seq START WITH 1 INCREMENT BY 1;
137 * Table structure for table 'radreply'
139 CREATE TABLE radreply (
141 UserName VARCHAR(30) NOT NULL,
142 Attribute VARCHAR(30),
143 op VARCHAR(2) NOT NULL,
146 CREATE INDEX radreply_idx1 ON radreply(UserName);
147 CREATE SEQUENCE radreply_seq START WITH 1 INCREMENT BY 1;
149 /* Trigger to emulate a serial # on the primary key */
150 CREATE OR REPLACE TRIGGER radreply_serialnumber
151 BEFORE INSERT OR UPDATE OF id ON radreply
154 if ( :new.id = 0 or :new.id is null ) then
155 SELECT radreply_seq.nextval into :new.id from dual;
161 * Table structure for table 'usergroup'
163 CREATE TABLE usergroup (
165 UserName VARCHAR(30) UNIQUE NOT NULL,
166 GroupName VARCHAR(30)
168 CREATE SEQUENCE usergroup_seq START WITH 1 INCREMENT BY 1;
171 * Table structure for table 'realmgroup'
173 CREATE TABLE realmgroup (
175 RealmName VARCHAR(30) UNIQUE NOT NULL,
176 GroupName VARCHAR(30)
178 CREATE SEQUENCE realmgroup_seq START WITH 1 INCREMENT BY 1;
180 CREATE TABLE realms (
182 realmname VARCHAR(64),
187 CREATE SEQUENCE realms_seq START WITH 1 INCREMENT BY 1;