In my Drupal 7 site, I inserted values into the 'surname' and 'date of birth' fields of my database tables. I want to prevent new users whose username and date of birth do not match those on my database from being able to log into my site. How do I achieve this? Thank you in anticipation.
There is (AFAIK) no module that will do this for you.
But you will be able to add and process any additional criteria for logging in by using
hook_user_login to insert your own business logic into the login process. In this hook, you may insert code to redirect those users that you do not want to login to a page that explains the situation. There is an example on how to redirect logins in the comment thread in the API documentation for
hook_user_login on Drupal.org.
For sake of completeness, I also mention that it is also possible to stop users not meeting specific criteria from registering in the first place. To do this, you add an additional validation callback function for the registration form processing using
hook_form_FORM_ID_alter. There is a question on Stack Overflow that explains how to do this in detail for Drupal 6.