Here is a script which I have been refining over a period of time. It is comprised of two separate queries which are unioned together to produce the comprehensive output; The first query scans all database artifacts except for tables, and the second query scans through the table definitions. (Credit: based on various tips found elsewhere on StackOverflow. This script puts them together for convenience.) I use this script on SQL Server 2012.
Clarification: This script is unique with respect to other scripts which I've seen elsewhere, in that it combines the standard DEFINITIONS search script, which does not search table definitions, with a listing of Table Names and Column Names in order to apply the search criteria against TABLE definitions as well.
declare @SearchTerm varchar(max) = '%Role%'
select found.*
  from (
        -- Scripted artifacts, e.g. Views, Sprocs, etc.
        select schema_name(o.schema_id) as [Schema], 
               o.Name as [Name], 
               o.type as [Type]
          from sys.sql_modules m
          full JOIN sys.objects o ON o.object_id = m.object_id
         where m.definition like @SearchTerm
            or o.Name like @SearchTerm
        UNION ALL
        -- Tables
        select distinct 
               schema_name(tab.schema_id) as [Schema],
               tab.name as [Name],
               'T' as [Type]
            from sys.columns col
            join sys.tables  tab on col.object_id = tab.object_id
         where col.name like @SearchTerm
            or tab.name like @SearchTerm
       ) found
 -- Add in any filters if you wish to limit the results
 where found.[Schema] <> 'zzz'