At the current stage, I do know that a few commercial software can do what you required. There are a combination of open source software that what you required, but most of them are still in the development stage, especially in the database and the real-time user management part. Please remove any white space in links provided.
1. Permit individual user's access to the Internet by login name.
Squid proxy, is capable of prompting user for id and password. It can be integrated with various authentication engine, such as NTLM, ldap, pam, etc.
2. Track user's time and kill user's Internet connection when time is complete.
You can try the software statman, currently that's the only software that I know that can track usage and terminate connections when the limit is reached. I do not know whether there are any continual development into this software.
http://www.tumgasa.ru/cyberos/statman/eng/statman.html
http://www.tumgasa.ru/cyberos/download/index.html
3. Keep user data base that maintains user account information, login name, time remaining, other time data, and possible usage data.
I have been keeping track of several development in this area, but the only development that actually have a software release is "whale", though u might need to write the front-end reporting yourself. Whale filter the squid log and convert it into a sql base log.
http://www.rvt.dds.nl/whale/whale.html
Below are some links that u might want to track, some provide the same function of converting squid log to sql, while some are trying to develop a plugin for squid to enable sql logging.
http://sourceforge.net/projects/squid2sql/
http://sourceforge.net/projects/squid-log/
http://sourceforge.net/projects/squidrh/
http://sourceforge.net/projects/squidsql/