This site is first link then you trying to resolve error
General access denied error The OLE DB provider "OraOLEDB.Oracle" for linked server reported an error. Access denied
If You can't set ''Allow in process" option on provider for some reason try this
exec ('select 1 from dual') at ORACLELINK
with domain account you get error (but with sql account thee is no error!!!!)
Msg 7399, Level 16, State 1, Line 2
The OLE DB provider "OraOLEDB.Oracle" for linked server "ORACLELINK" reported an error. Access denied.
Msg 7391, Level 16, State 2, Line 2
The operation could not be performed because OLE DB provider "OraOLEDB.Oracle" for linked server "ORACLELINK" was unable to begin a distributed transaction.
take trace on your distrebuted transaction (or test code above) with
events OLE DB *
if you find error
OLE DB eroor codes
0x80070005 -2147024891 General access denied error
0x80004002 -2147467262 No such interface supported
The solution is here