SQL Server permissions can be granted to on an object level (schema, database, database objects). In newer versions of SQL Server permissions can be given to user at a more granular level.

To retrieve all the permissions granted to a specific user SQL server has a function named: fn_my_permission.  This function is only accessible to system administrator. e.g

following query will retrieve all the permissions on server.

select * From fn_my_permissions(NULL, NULL) 

following query retrieve all the permissions on a database:

select * From fn_my_permissions(NULL, ‘database’)

 

following query retrieve all the permissions on a dbo schema:

select * From fn_my_permissions(’dbo’, ’schema’)