1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
|
/*
* $Id$
*
* Oracle schema for FreeRADIUS
*
*
* NOTE: Which columns are NULLable??
*/
/*
* Table structure for table 'radacct'
*/
CREATE TABLE radacct (
radacctid INT PRIMARY KEY,
acctsessionid VARCHAR(96) NOT NULL,
acctuniqueid VARCHAR(32),
username VARCHAR(64) NOT NULL,
realm VARCHAR(64),
nasipaddress VARCHAR(15) NOT NULL,
nasportid VARCHAR(32),
nasporttype VARCHAR(32),
acctstarttime TIMESTAMP WITH TIME ZONE,
acctstoptime TIMESTAMP WITH TIME ZONE,
acctsessiontime NUMERIC(19),
acctauthentic VARCHAR(32),
connectinfo_start VARCHAR(128),
connectinfo_stop VARCHAR(128),
acctinputoctets NUMERIC(19),
acctoutputoctets NUMERIC(19),
calledstationid VARCHAR(50),
callingstationid VARCHAR(50),
acctterminatecause VARCHAR(32),
servicetype VARCHAR(32),
framedprotocol VARCHAR(32),
framedipaddress VARCHAR(15),
framedipv6address VARCHAR(45),
framedipv6prefix VARCHAR(45),
framedinterfaceid VARCHAR(44),
delegatedipv6prefix VARCHAR(45),
acctstartdelay NUMERIC(12),
acctstopdelay NUMERIC(12),
XAscendSessionSvrKey VARCHAR(10),
Class VARCHAR(64)
);
CREATE UNIUQE INDEX radacct_idx0
ON radacct(acctuniqueid);
CREATE UNIQUE INDEX radacct_idx1
ON radacct(acctsessionid,username,acctstarttime,
acctstoptime,nasipaddress,framedipaddress,framedipv6address,framedipv6prefix,framedinterfaceid,delegatedipv6prefix);
CREATE INDEX radacct_idx2
ON radacct(class);
CREATE SEQUENCE radacct_seq START WITH 1 INCREMENT BY 1;
/* Trigger to emulate a serial # on the primary key */
CREATE OR REPLACE TRIGGER radacct_serialnumber
BEFORE INSERT OR UPDATE OF radacctid ON radacct
FOR EACH ROW
BEGIN
if ( :new.radacctid = 0 or :new.radacctid is null ) then
SELECT radacct_seq.nextval into :new.radacctid from dual;
end if;
END;
/
/*
* Table structure for table 'radcheck'
*/
CREATE TABLE radcheck (
id INT PRIMARY KEY,
username VARCHAR(30) NOT NULL,
attribute VARCHAR(64),
op VARCHAR(2) NOT NULL,
value VARCHAR(40)
);
CREATE SEQUENCE radcheck_seq START WITH 1 INCREMENT BY 1;
/* Trigger to emulate a serial # on the primary key */
CREATE OR REPLACE TRIGGER radcheck_serialnumber
BEFORE INSERT OR UPDATE OF id ON radcheck
FOR EACH ROW
BEGIN
if ( :new.id = 0 or :new.id is null ) then
SELECT radcheck_seq.nextval into :new.id from dual;
end if;
END;
/
/*
* Table structure for table 'radgroupcheck'
*/
CREATE TABLE radgroupcheck (
id INT PRIMARY KEY,
groupname VARCHAR(20) NOT NULL,
attribute VARCHAR(64),
op CHAR(2) NOT NULL,
value VARCHAR(40)
);
CREATE SEQUENCE radgroupcheck_seq START WITH 1 INCREMENT BY 1;
/*
* Table structure for table 'radgroupreply'
*/
CREATE TABLE radgroupreply (
id INT PRIMARY KEY,
GroupName VARCHAR(20) NOT NULL,
Attribute VARCHAR(64),
op CHAR(2) NOT NULL,
Value VARCHAR(40)
);
CREATE SEQUENCE radgroupreply_seq START WITH 1 INCREMENT BY 1;
/*
* Table structure for table 'radreply'
*/
CREATE TABLE radreply (
id INT PRIMARY KEY,
UserName VARCHAR(30) NOT NULL,
Attribute VARCHAR(64),
op CHAR(2) NOT NULL,
Value VARCHAR(40)
);
CREATE INDEX radreply_idx1 ON radreply(UserName);
CREATE SEQUENCE radreply_seq START WITH 1 INCREMENT BY 1;
/* Trigger to emulate a serial # on the primary key */
CREATE OR REPLACE TRIGGER radreply_serialnumber
BEFORE INSERT OR UPDATE OF id ON radreply
FOR EACH ROW
BEGIN
if ( :new.id = 0 or :new.id is null ) then
SELECT radreply_seq.nextval into :new.id from dual;
end if;
END;
/
/*
* Table structure for table 'radusergroup'
*/
CREATE TABLE radusergroup (
id INT PRIMARY KEY,
UserName VARCHAR(30) NOT NULL,
GroupName VARCHAR(30)
);
CREATE SEQUENCE radusergroup_seq START WITH 1 INCREMENT BY 1;
/* Trigger to emulate a serial # on the primary key */
CREATE OR REPLACE TRIGGER radusergroup_serialnumber
BEFORE INSERT OR UPDATE OF id ON radusergroup
FOR EACH ROW
BEGIN
if ( :new.id = 0 or :new.id is null ) then
SELECT radusergroup_seq.nextval into :new.id from dual;
end if;
END;
/
CREATE TABLE radpostauth (
id INT PRIMARY KEY,
UserName VARCHAR(64) NOT NULL,
Pass VARCHAR(64),
Reply VARCHAR(64),
AuthDate TIMESTAMP(6) WITH TIME ZONE,
Class VARCHAR(64)
);
CREATE INDEX radpostauth_idx0
ON radpostauth(UserName);
CREATE INDEX radpostauth_idx1
ON radpostauth(class);
CREATE SEQUENCE radpostauth_seq START WITH 1 INCREMENT BY 1;
CREATE OR REPLACE TRIGGER radpostauth_TRIG
BEFORE INSERT OR UPDATE OF id ON radpostauth
FOR EACH ROW
BEGIN
if ( :new.id = 0 or :new.id is null ) then
SELECT radpostauth_seq.nextval into :new.id from dual;
end if;
if (:new.AuthDate is null) then
select systimestamp into :new.AuthDate from dual;
end if;
END;
/
/*
* Table structure for table 'nas'
*/
CREATE TABLE nas (
id INT PRIMARY KEY,
nasname VARCHAR(128),
shortname VARCHAR(32),
type VARCHAR(30),
ports INT,
secret VARCHAR(60),
server VARCHAR(64),
community VARCHAR(50),
description VARCHAR(200)
);
CREATE SEQUENCE nas_seq START WITH 1 INCREMENT BY 1;
|