blob: f4c92d56cca54e9640afbc0c8d7216d7aa204a55 [file] [log] [blame]
# -*- text -*-
##
## sql.conf -- SQL modules
##
## $Id: e1431d634a28f20a0e5deaeedd66a161deb88eb7 $
######################################################################
#
# Configuration for the SQL module
#
# The database schemas and queries are located in subdirectories:
#
# sql/<DB>/main/schema.sql Schema
# sql/<DB>/main/queries.conf Authorisation and Accounting queries
#
# Where "DB" is mysql, mssql, oracle, or postgresql.
#
#
sql {
# The sub-module to use to execute queries. This should match
# the database you're attempting to connect to.
#
# * rlm_sql_mysql
# * rlm_sql_mssql
# * rlm_sql_oracle
# * rlm_sql_postgresql
# * rlm_sql_sqlite
# * rlm_sql_null (log queries to disk)
#
driver = "rlm_sql_sqlite"
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
sqlite {
filename = "/opt/db/radius.sqlite3"
}
#
# Several drivers accept specific options, to set them, a
# config section with the the name as the driver should be added
# to the sql instance.
#
# Driver specific options are:
#
# sqlite {
# # Path to the sqlite database
# filename = "/my/sqlite/database.db"
#
# # If the file above does not exist and bootstrap is set
# # a new database file will be created, and the SQL statements
# # contained within the file will be executed.
# bootstrap = "/my/sqlite/schema.sql"
# }
#
# mysql {
# # If any of the below files are set tls encryption is enabled
# tls {
# ca_file = "/etc/ssl/certs/my_ca.crt"
# ca_path = "/etc/ssl/certs/"
# certificate_file = "/etc/ssl/certs/private/client.crt"
# private_key_file = "/etc/ssl/certs/private/client.key"
# cipher = "DHE-RSA-AES256-SHA:AES128-SHA"
# }
# }
#
# The dialect of SQL you want to use, this should usually match
# the driver you selected above.
#
# If you're using rlm_sql_null, then it should be the type of
# database the logged queries are going to be executed against.
dialect = "sqlite"
# Connection info:
#
# server = "localhost"
# port = 3306
# login = "radius"
# password = "radpass"
# Database table configuration for everything except Oracle
radius_db = "radius"
# If you are using Oracle then use this instead
# radius_db = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=your_sid)))"
# If you're using postgresql this can also be used instead of the connection info parameters
# radius_db = "dbname=radius host=localhost user=radius password=raddpass"
# If you want both stop and start records logged to the
# same SQL table, leave this as is. If you want them in
# different tables, put the start table in acct_table1
# and stop table in acct_table2
acct_table1 = "radacct"
acct_table2 = "radacct"
# Allow for storing data after authentication
postauth_table = "radpostauth"
# Tables containing 'check' items
authcheck_table = "radcheck"
groupcheck_table = "radgroupcheck"
# Tables containing 'reply' items
authreply_table = "radreply"
groupreply_table = "radgroupreply"
# Table to keep group info
usergroup_table = "radusergroup"
# If set to 'yes' (default) we read the group tables
# If set to 'no' the user MUST have Fall-Through = Yes in the radreply table
# read_groups = yes
# Remove stale session if checkrad does not see a double login
delete_stale_sessions = yes
# Write SQL queries to a logfile. This is potentially useful for tracing
# issues with authorization queries.
# logfile = ${logdir}/sqllog.sql
# As of version 3.0, the "pool" section has replaced the
# following configuration items:
#
# num_sql_socks
# connect_failure_retry_delay
# lifetime
# max_queries
#
# The connection pool is new for 3.0, and will be used in many
# modules, for all kinds of connection-related activity.
#
# When the server is not threaded, the connection pool
# limits are ignored, and only one connection is used.
#
pool {
# Number of connections to start
start = 5
# Minimum number of connections to keep open
min = 4
# Maximum number of connections
#
# If these connections are all in use and a new one
# is requested, the request will NOT get a connection.
#
# Setting 'max' to LESS than the number of threads means
# that some threads may starve, and you will see errors
# like "No connections available and at max connection limit"
#
# Setting 'max' to MORE than the number of threads means
# that there are more connections than necessary.
#
max = ${thread[pool].max_servers}
# Spare connections to be left idle
#
# NOTE: Idle connections WILL be closed if "idle_timeout"
# is set.
spare = 3
# Number of uses before the connection is closed
#
# 0 means "infinite"
uses = 0
# The lifetime (in seconds) of the connection
lifetime = 0
# idle timeout (in seconds). A connection which is
# unused for this length of time will be closed.
idle_timeout = 60
# NOTE: All configuration settings are enforced. If a
# connection is closed because of "idle_timeout",
# "uses", or "lifetime", then the total number of
# connections MAY fall below "min". When that
# happens, it will open a new connection. It will
# also log a WARNING message.
#
# The solution is to either lower the "min" connections,
# or increase lifetime/idle_timeout.
}
# Set to 'yes' to read radius clients from the database ('nas' table)
# Clients will ONLY be read on server startup.
# read_clients = yes
# Table to keep radius client info
client_table = "nas"
# Read database-specific queries
$INCLUDE ${modconfdir}/${.:name}/main/${dialect}/queries.conf
}