New member gets user account
You can use a combination of CiviCRM WordPress Profile Sync (which provides 2-way sync between WordPress profiles and CiviCRM contact details) and CiviCRM WordPress Member Sync to achieve this.

Have a look at the docs for CiviCRM WordPress Member Sync to see how you can use the Groups or Members plugin to restrict access to WordPress content for your members.

A simple Membership Contribution page in CiviCRM is all that's required to enable sign-ups - with the added benefit that you don't have to enable the WordPress setting that means "Anyone can register".