When you want to give a user the privilege to select from data dictionary and dynamic performance views such as V$DATAFILE, you have two options:
grant select any dictionary to
grant select_catalog_role to
Did you ever wonder why there are two options for accomplishing the same objective? Is one of them redundant? Won't it make sense for Oracle to have just one privilege? And, most important, do these two privileges produce the same result?