<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.anope.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.anope.org/index.php?action=history&amp;feed=atom&amp;title=2.0%2FModules%2Fm_sql_authentication</id>
		<title>2.0/Modules/m sql authentication - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.anope.org/index.php?action=history&amp;feed=atom&amp;title=2.0%2FModules%2Fm_sql_authentication"/>
		<link rel="alternate" type="text/html" href="https://wiki.anope.org/index.php?title=2.0/Modules/m_sql_authentication&amp;action=history"/>
		<updated>2026-05-29T18:35:40Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.23.4</generator>

	<entry>
		<id>//wiki.anope.org/index.php?title=2.0/Modules/m_sql_authentication&amp;diff=945&amp;oldid=prev</id>
		<title>Azander at 19:47, 13 May 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.anope.org/index.php?title=2.0/Modules/m_sql_authentication&amp;diff=945&amp;oldid=prev"/>
				<updated>2014-05-13T19:47:49Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 19:47, 13 May 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== &amp;lt;div class=&amp;quot;moduleheader&amp;quot;&amp;gt;Description&amp;lt;/div&amp;gt; ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== &amp;lt;div class=&amp;quot;moduleheader&amp;quot;&amp;gt;Description&amp;lt;/div&amp;gt; ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This modules interfaces services with a SQL backend, such as Mysql, Redis, or SQLite, to manage users.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This modules interfaces services with a SQL backend, such as Mysql, Redis, or SQLite, to manage users.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;Enabeled/Disabeled using the '''./extra''' command line configuration tool.&amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''NOTE''': Requres a SQL backend module to be present and properly configured.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''NOTE''': Requres a SQL backend module to be present and properly configured.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Azander</name></author>	</entry>

	<entry>
		<id>//wiki.anope.org/index.php?title=2.0/Modules/m_sql_authentication&amp;diff=920&amp;oldid=prev</id>
		<title>Azander: Created page with &quot;{{Language|2.0/Modules/m_sql_authentication}} {{Header|m_sql_authentication|Database|Anope}}  == &lt;div class=&quot;moduleheader&quot;&gt;Description&lt;/div&gt; == This modules interfaces service...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.anope.org/index.php?title=2.0/Modules/m_sql_authentication&amp;diff=920&amp;oldid=prev"/>
				<updated>2014-05-13T15:05:14Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{Language|2.0/Modules/m_sql_authentication}} {{Header|m_sql_authentication|Database|Anope}}  == &amp;lt;div class=&amp;quot;moduleheader&amp;quot;&amp;gt;Description&amp;lt;/div&amp;gt; == This modules interfaces service...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Language|2.0/Modules/m_sql_authentication}}&lt;br /&gt;
{{Header|m_sql_authentication|Database|Anope}}&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;div class=&amp;quot;moduleheader&amp;quot;&amp;gt;Description&amp;lt;/div&amp;gt; ==&lt;br /&gt;
This modules interfaces services with a SQL backend, such as Mysql, Redis, or SQLite, to manage users.&lt;br /&gt;
&lt;br /&gt;
*'''NOTE''': Requres a SQL backend module to be present and properly configured.&lt;br /&gt;
&lt;br /&gt;
;name= :Name of module&lt;br /&gt;
;engine= :Name of backend method to use&lt;br /&gt;
;query= :The command used to get the data from the backend database.&lt;br /&gt;
;disable_reason= :Reason to display while preventing users from registering nicks via nickserv.  They will need to be created in another method (such as forum registration, etc).&lt;br /&gt;
;disable_email_reason= :Reason to display when preventing users from changing their email address.  They will need alternative methods to update email address, such as via forum profile changes.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;div class=&amp;quot;moduleheader&amp;quot;&amp;gt;Default Configuration&amp;lt;/div&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * m_sql_authentication [EXTRA]&lt;br /&gt;
 *&lt;br /&gt;
 * This module allows authenticating users against an external SQL database using a custom&lt;br /&gt;
 * query.&lt;br /&gt;
 */&lt;br /&gt;
#module&lt;br /&gt;
{&lt;br /&gt;
        name = &amp;quot;m_sql_authentication&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        /* SQL engine to use. Should be configured elsewhere with m_mysql, m_sqlite, etc. */&lt;br /&gt;
        engine = &amp;quot;mysql/main&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        /* Query to execute to authenticate. A non empty result from this query is considered a success,&lt;br /&gt;
         * and the user will be authenticated.&lt;br /&gt;
         *&lt;br /&gt;
         * @a@ is replaced with the user's account name&lt;br /&gt;
         * @p@ is replaced with the user's password&lt;br /&gt;
         * @n@ is replaced with the user's nickname&lt;br /&gt;
         * @i@ is replaced with the user's IP&lt;br /&gt;
         *&lt;br /&gt;
         * Note that @n@ and @i@ may not always exist in the case of a user identifying outside of the normal&lt;br /&gt;
         * nickserv/identify command, such as through the web panel.&lt;br /&gt;
         *&lt;br /&gt;
         * Furthermore, if a field named email is returned from this query the user's email is&lt;br /&gt;
         * set to its value.&lt;br /&gt;
         *&lt;br /&gt;
         *&lt;br /&gt;
         * We've included some example queries for some popular website/forum systems.&lt;br /&gt;
         *&lt;br /&gt;
         * Drupal 6: &amp;quot;SELECT `mail` AS `email` FROM `users` WHERE `name` = @a@ AND `pass` = MD5(@p@) AND `status` = 1&amp;quot;&lt;br /&gt;
         * e107 cms: &amp;quot;SELECT `user_email` AS `email` FROM `e107_user` WHERE `user_loginname` = @a@ AND `user_password` = MD5(@p@)&amp;quot;&lt;br /&gt;
         * SMF Forum: &amp;quot;SELECT `email_address` AS `email` FROM `smf_members` WHERE `member_name` = @a@ AND `passwd` = SHA1(CONCAT(LOWER(@a@), @p@)&lt;br /&gt;
)&amp;quot;&lt;br /&gt;
         * vBulletin: &amp;quot;SELECT `email` FROM `user` WHERE `username` = @a@ AND `password` = MD5(CONCAT(MD5(@p@), `salt`))&amp;quot;&lt;br /&gt;
         * IP.Board: &amp;quot;SELECT `email` FROM `ibf_members` WHERE `name` = @a@ AND `members_pass_hash` = MD5(CONCAT(MD5(`members_pass_salt`), MD5(@p@&lt;br /&gt;
)))&amp;quot;&lt;br /&gt;
         */&lt;br /&gt;
        query = &amp;quot;SELECT `email_addr` AS `email` FROM `my_users` WHERE `username` = @a@ AND `password` = MD5(CONCAT('salt', @p@))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * If set, the reason to give the users who try to &amp;quot;/msg NickServ REGISTER&amp;quot;.&lt;br /&gt;
         * If not set, then registration is not blocked.&lt;br /&gt;
         */&lt;br /&gt;
        #disable_reason = &amp;quot;To register on this network visit http://some.misconfigured.site/register&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * If set, the reason to give the users who try to &amp;quot;/msg NickServ SET EMAIL&amp;quot;.&lt;br /&gt;
         * If not set, then email changing is not blocked.&lt;br /&gt;
         */&lt;br /&gt;
        #disable_email_reason = &amp;quot;To change your email address visit http://some.misconfigured.site&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Azander</name></author>	</entry>

	</feed>