To create the user, you would need to do something like this:
create user user_name identified by user_password;
grant create session to user_name;
grant resource to user_name;
As for the permissions, Oracle runs stored procedures with the privileges of the procedure’s owner, so you only need to grant the privilege to execute the procedure, and it will have access to the tables referenced in its code.
grant execute on your_procedure to user_name;