Granting permissions to relevant account is a required criteria within the SQL Server databases management, for this even Reporting Services is not exceptional. As per the configuration by default the users connect to the report server by using their own Windows domain credentials and integrated security...
By default SQL Server automatically creates the internal tables for Full-text search, XML indexes and Service broker. These are also created when a user query is written poorly that uses tempdb heavily. At they are called internal tables but do not contain any user related data and schema for these tabls...
If you need to grant permissions to a login that only needs to view stored procedures (contents not just names of SP's). Further you may not want to grant that login with DB_OWNER or DB_DDLADMIN roles within that database, so how to achieve this task? As usual if that login needs the execute permission...