If using SQLDeveloper from Oracle there was an issue we ran into where the user who were granted read access to tables couldn’t use the tool to extract DDL, to fix the issue we had to grant “SELECT_CATALOG_ROLE” to user this was discovered by turning on trace on user session which was logged using SQLDeveloper. This issue is fixed in version 3.0