How to script permissions for all logins/users/tables/schemas
I have a couple of stored procedures that I wrote and use on a regular basis.


sp_SrvPermissions
sp_DBPermissions


They each have three outputs.  


Principals : A list of the database/server principals and associated info including create/drop scripts.
Role membership : A list of what roles each database/server principal belongs to along with add/drop scripts.
Permissions : A list of individual permissions (EXECUTE, INSERT, UPDATE, CONNECT etc) for each database/server principal.


Obviously the Srv sp is for the Server principals and the DB sp is for the database level principals.  The DB sp also has an 'All' option for the database name.  With this option it runs through and pulls all permissions for all databases.

Note: This was originally intended as a research tool so there are a fair number of options that will let you parse down your data.  Just roles, everything but roles, just a specific principal name etc.