Make sure squid is compiled with --enable-basic-auth-helpers=DB option.
Creating MySQL db/table to hold user credentials
mysql> create database squid;
mysql> grant select on squid.* to someuser@localhost identified by 'your_passwd';
Create table 'passwd' in 'squid' db.
mysql> CREATE TABLE `passwd` (Populate the table with some test data, eg
`user` varchar(32) NOT NULL default '',
`password` varchar(35) NOT NULL default '',
`enabled` tinyint(1) NOT NULL default '1',
`fullname` varchar(60) default NULL,
`comment` varchar(60) default NULL,
PRIMARY KEY (`user`)
);
mysql> insert into passwd values('Nikesh','test',1,'Test User','for testing purpose');Squid Configuration File
Edit squid.conf so that authentication against MySQL db works
auth_param basic program /usr/local/squid/libexec/squid_db_auth --user someuser --password your_passwd --plaintext --persist
auth_param basic children 5
auth_param basic realm Web-Proxy
auth_param basic credentialsttl 1 minute
auth_param basic casesensitive off
acl db-auth proxy_auth REQUIRED
http_access allow db-auth
http_access allow localhost
http_access deny all
Other squid related articles - here
source:http://linuxpoison.blogspot.com/2010/08/135781677519284.html