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'