There is of course the PERMISSIONS() function, which you can invoke only for the currently connected login, and for one object at a time. It gives you the effective permissions, although it won't tell you if a permission was denied - just that it was or was not granted. It covers column level permissions too. Check it out in BOL