
A database link is a pointer in the local database that lets you access objects on a remote database. To create a private database link, you must have been granted the proper privileges. The following table illustrates which privileges are required on which database for which type of link:
| Privilege | Database | Required For |
|---|---|---|
CREATE DATABASE LINK |
Local | Creation of a private database link. |
CREATE PUBLIC DATABASE LINK |
Local | Creation of a public database link. |
CREATE SESSION |
Remote | Creation of any type of database link. |
To see which privileges you currently have available, query ROLE_SYS_PRIVS. For example, you could create and execute the following privs.sql script (sample output included):
SELECT DISTINCT PRIVILEGE AS "Database Link Privileges"
FROM ROLE_SYS_PRIVS
WHERE PRIVILEGE IN ( 'CREATE SESSION','CREATE DATABASE LINK',
'CREATE PUBLIC DATABASE LINK')
or just execute following query to see all the permissions for current user:
SELECT DISTINCT PRIVILEGE AS "Database Link Privileges" FROM ROLE_SYS_PRIVS
Source: Oracle Docs