4 * Oracle schema for FreeRADIUS
7 * NOTE: Which columns are NULLable??
11 * Table structure for table 'nas'
12 * This is not currently used but FreeRADIUS but is usefull for reporting
19 shortname VARCHAR(32),
24 community VARCHAR(50),
26 naslocation VARCHAR(10)
28 CREATE SEQUENCE nas_seq START WITH 1 INCREMENT BY 1;
31 * Table structure for table 'radacct'
33 CREATE TABLE radacct (
34 radacctid INT PRIMARY KEY,
35 acctsessionid VARCHAR(32) NOT NULL,
36 acctuniqueid VARCHAR(32),
37 username VARCHAR(32) NOT NULL,
39 nasipaddress VARCHAR(15) NOT NULL,
40 nasportid NUMERIC(12),
41 nasporttype VARCHAR(32),
44 acctsessiontime NUMERIC(12),
45 acctauthentic VARCHAR(32),
46 connectinfo_start VARCHAR(32),
47 connectinfo_stop VARCHAR(32),
48 acctinputoctets NUMERIC(12),
49 acctoutputoctets NUMERIC(12),
50 calledstationid VARCHAR(50),
51 callingstationid VARCHAR(50),
52 acctterminatecause VARCHAR(32),
53 servicetype VARCHAR(32),
54 framedprotocol VARCHAR(32),
55 framedipaddress VARCHAR(15),
56 acctstartdelay NUMERIC(12),
57 acctstopdelay NUMERIC(12)
59 CREATE UNIQUE INDEX radacct_idx1
60 ON radacct(acctsessionid,username,acctstarttime,
61 acctstoptime,nasipaddress,framedipaddress);
63 CREATE SEQUENCE radacct_seq START WITH 1 INCREMENT BY 1;
65 /* Trigger to emulate a serial # on the primary key */
66 CREATE OR REPLACE TRIGGER radacct_serialnumber
67 BEFORE INSERT OR UPDATE OF radacctid ON radacct
70 if ( :new.radacctid = 0 or :new.radacctid is null ) then
71 SELECT radacct_seq.nextval into :new.radacctid from dual;
77 * Table structure for table 'radcheck'
79 CREATE TABLE radcheck (
81 username VARCHAR(30) NOT NULL,
82 attribute VARCHAR(30),
83 op VARCHAR(2) NOT NULL,
86 CREATE SEQUENCE radcheck_seq START WITH 1 INCREMENT BY 1;
88 /* Trigger to emulate a serial # on the primary key */
89 CREATE OR REPLACE TRIGGER radcheck_serialnumber
90 BEFORE INSERT OR UPDATE OF id ON radcheck
93 if ( :new.id = 0 or :new.id is null ) then
94 SELECT radcheck_seq.nextval into :new.id from dual;
100 * Table structure for table 'radgroupcheck'
102 CREATE TABLE radgroupcheck (
104 groupname VARCHAR(20) UNIQUE NOT NULL,
105 attribute VARCHAR(40),
106 op VARCHAR(2) NOT NULL,
109 CREATE SEQUENCE radgroupcheck_seq START WITH 1 INCREMENT BY 1;
112 * Table structure for table 'radgroupreply'
114 CREATE TABLE radgroupreply (
116 GroupName VARCHAR(20) UNIQUE NOT NULL,
117 Attribute VARCHAR(40),
118 op VARCHAR(2) NOT NULL,
121 CREATE SEQUENCE radgroupreply_seq START WITH 1 INCREMENT BY 1;
124 * Table structure for table 'radreply'
126 CREATE TABLE radreply (
128 UserName VARCHAR(30) NOT NULL,
129 Attribute VARCHAR(30),
130 op VARCHAR(2) NOT NULL,
133 CREATE INDEX radreply_idx1 ON radreply(UserName);
134 CREATE SEQUENCE radreply_seq START WITH 1 INCREMENT BY 1;
136 /* Trigger to emulate a serial # on the primary key */
137 CREATE OR REPLACE TRIGGER radreply_serialnumber
138 BEFORE INSERT OR UPDATE OF id ON radreply
141 if ( :new.id = 0 or :new.id is null ) then
142 SELECT radreply_seq.nextval into :new.id from dual;
148 * Table structure for table 'usergroup'
150 CREATE TABLE usergroup (
152 UserName VARCHAR(30) UNIQUE NOT NULL,
153 GroupName VARCHAR(30)
155 CREATE SEQUENCE usergroup_seq START WITH 1 INCREMENT BY 1;
158 * Table structure for table 'realmgroup'
160 CREATE TABLE realmgroup (
162 RealmName VARCHAR(30) UNIQUE NOT NULL,
163 GroupName VARCHAR(30)
165 CREATE SEQUENCE realmgroup_seq START WITH 1 INCREMENT BY 1;
167 CREATE TABLE realms (
169 realmname VARCHAR(64),
174 CREATE SEQUENCE realms_seq START WITH 1 INCREMENT BY 1;