ACCESSIBLE appears in the SQL standard and several database systems as a way to describe routine visibility. In Oracle, the phrase ACCESSIBLE BY is appended to a PL/SQL function, procedure, or package element to explicitly list the callers that are allowed to invoke that routine. In MySQL the word is currently reserved for future use, which means you cannot use ACCESSIBLE as an unquoted identifier (table, column, or alias name) without quoting it. Other engines such as IBM Db2 also reserve the keyword for similar reasons. Because it is reserved, the primary impact today (outside of Oracle PL/SQL) is on naming: developers must quote the identifier if they want to use the word in schemas, otherwise the parser raises a syntax error.
ACCESS CONTROL, GRANT, INVOKER RIGHTS, DEFINER RIGHTS, SQL SECURITY, IDENTIFIER QUOTING
Oracle Database 11g Release 2 (11.2) introduced ACCESSIBLE BY; MySQL 5.7 reserved the keyword.
ACCESSIBLE BY lets you list exactly which packages, procedures, or functions can invoke the routine. Calls from other units cause a compile error, adding compile-time security.
Yes, but you must quote it because the word is reserved. Example: CREATE TABLE `accessible` (id INT);
No. These systems neither reserve the keyword nor implement the ACCESSIBLE BY clause.
No. It complements them. ACCESSIBLE BY works at compile time for PL/SQL code, while GRANT/REVOKE handle runtime permissions.