先说重点,GRANT SELECT_CATALOG_ROLE TO 用户名;
等同于
SELECT on TABLE SYS.ARGUMENT$ SELECT on VIEW SYS.DBA_COL_COMMENTS SELECT on VIEW SYS.DBA_CONS_COLUMNS SELECT on VIEW SYS.DBA_CONSTRAINTS SELECT on VIEW SYS.DBA_IND_COLUMNS SELECT on VIEW SYS.DBA_INDEXES SELECT on VIEW SYS.DBA_JOBS SELECT on VIEW SYS.DBA_OBJECTS SELECT on VIEW SYS.DBA_PROFILES SELECT on VIEW SYS.DBA_ROLE_PRIVS SELECT on VIEW SYS.DBA_SEQUENCES SELECT on VIEW SYS.DBA_SYNONYMS SELECT on VIEW SYS.DBA_TAB_COLUMNS SELECT on VIEW SYS.DBA_TAB_COMMENTS SELECT on VIEW SYS.DBA_TABLES SELECT on VIEW SYS.DBA_TRIGGERS SELECT on VIEW SYS.DBA_USERS EXECUTE on PACKAGE SYS.DBMS_LOCK EXECUTE on PACKAGE BODY SYS.DBMS_LOCK EXECUTE on PACKAGE SYS.DBMS_OBFUSCATION_TOOLKIT EXECUTE on PACKAGE BODY SYS.DBMS_OBFUSCATION_TOOLKIT SELECT on TABLE SYS.JOB$ SELECT on TABLE SYS.OBJ$ SELECT on TABLE SYS.SOURCE$ SELECT on TABLE SYS.USER$ SELECT on VIEW SYS.V_$SESSION
查一个问题,有个用户并没有授权 DBA_ERRORS 表查询权限,却可以查询。后来发现是授权了SELECT_CATALOG_ROLE。