1. A method for performing role mining given a plurality of users and a plurality of permissions, the method comprising the steps of: using at least one generative machine learning technique to obtain a collection K of k roles, a probability distribution θ for user-to-role assignments and a probability distribution β for role-to-permission assignments; and using the probability distribution θ for user-to-role assignments and the probability distribution β for role-to-permission assignments to produce a final set of roles, including user-to-role assignments and role-to-permission assignments.