On Mon, Jul 14, 2003 at 09:53:35AM +0200, Oliver Graf wrote:
> On Mon, Jul 14, 2003 at 10:30:52AM +0300, Peter Nixon wrote:
> > I would like to take a quick straw poll.
> > 
> > a) If you use a Database backend for FreeRadius which one do you use?
> 
> MySQL

a) MySQL, but not for accounting.

b) I use detail logs for accounting.

c) There is so much fuckage in accounting packets. So I have a own
   tool which does proper accounting (Start-Stop accounting actually
   -- don't trust Session-Time) into a MySQL database. It also
   handles duplicate sessions and vendor specific stuff (such as
   64 bit counters for traffic).

d) No, my own. attached. I have one mysqld running on each radius.
   The database is synced periodically from multiple user management
   databases. So these are pure lookup tables.

   The group and type columns tell what type the entry is, the source
   column tells me from where the data orginates (which other
   database).

Regards,
  Oliver.

        authcheck_table = "radiususers"
        authreply_table = "radiususers"
        groupcheck_table = "radiususers"
        groupreply_table = "radiususers"
        
        usergroup_table = "radusergroup"
        
        authorize_check_query = "SELECT id,name,attr,value,op FROM ${authcheck_table} 
WHERE name = '%{SQL-User-Name}' AND kind = 'user' AND type = 'check' ORDER BY id"
        authorize_reply_query = "SELECT id,name,attr,value,op FROM ${authreply_table} 
WHERE name = '%{SQL-User-Name}' AND kind = 'user' AND type = 'reply' ORDER BY id"

        authorize_group_check_query = "SELECT 
${groupcheck_table}.id,${groupcheck_table}.name,${groupcheck_table}.attr,${groupcheck_table}.value,${groupcheck_table}.op
  FROM ${groupcheck_table},${usergroup_table} WHERE ${usergroup_table}.usr = 
'%{SQL-User-Name}' AND ${usergroup_table}.grp = ${groupcheck_table}.name AND 
${groupcheck_table}.kind = 'group' AND ${groupcheck_table}.type = 'check' ORDER BY 
${groupcheck_table}.id"
        authorize_group_reply_query = "SELECT 
${groupreply_table}.id,${groupreply_table}.name,${groupreply_table}.attr,${groupreply_table}.value,${groupreply_table}.op
  FROM ${groupreply_table},${usergroup_table} WHERE ${usergroup_table}.usr = 
'%{SQL-User-Name}' AND ${usergroup_table}.grp = ${groupreply_table}.name AND 
${groupcheck_table}.kind = 'group' AND ${groupcheck_table}.type = 'reply' ORDER BY 
${groupreply_table}.id"

        group_membership_query = "SELECT grp FROM ${usergroup_table} WHERE 
usr='%{SQL-User-Name}'"
# MySQL dump 8.16
#
# Host: localhost    Database: radius
#--------------------------------------------------------
# Server version        3.23.47-log

#
# Table structure for table 'radiususers'
#

CREATE TABLE radiususers (
  id int(10) unsigned NOT NULL auto_increment,
  source tinyint(4) NOT NULL default '0',
  name varchar(64) NOT NULL default '',
  kind enum('user','group') NOT NULL default 'user',
  type enum('check','reply') NOT NULL default 'check',
  attr varchar(64) NOT NULL default '',
  op char(2) NOT NULL default '=',
  value varchar(253) NOT NULL default '',
  PRIMARY KEY  (id),
  KEY name (name,kind,type)
) TYPE=MyISAM;

#
# Table structure for table 'radusergroup'
#

CREATE TABLE radusergroup (
  id int(10) unsigned NOT NULL auto_increment,
  usr varchar(64) NOT NULL default '',
  grp varchar(64) NOT NULL default '',
  source tinyint(4) NOT NULL default '0',
  PRIMARY KEY  (id),
  KEY usr (usr)
) TYPE=MyISAM;

Reply via email to