Dokuwiki certainly has the functionality you are looking for, have a look around the manual for "ACL" for how to set this up. You can create users yourself or you can link DokuWiki to an existing authentication system such as MySQL or PunBB.
Once you have users set up you can change the access permissions on pages so that only people who are logged in, or members of particular groups, can use it. For each page and namespace you can set access permissions for users or groups, and say whether they should be able to see the page, whether they can edit it, and so on. I think it pretty much meets your needs.
I should think you want to start here:
http://wiki.splitbrain.org/wiki:acl