Skip to Main Content
  • Questions
  • Why do we have specify the authentication clause for shared private fixed database links?

Breadcrumb

Question and Answer

Connor McDonald

Thanks for the question, Markus.

Asked: February 15, 2018 - 3:26 pm UTC

Last updated: February 16, 2018 - 11:36 am UTC

Version: 12.2

Viewed 1000+ times

You Asked

Hi,


A private fixed user database link only requires username + password, e.g.

create database link <link_name> connect to <remote_user> identified by <remote_password> using "<tns-string>";



A SHARED private fixed user database link also requires an authentication clause, e.g.

create shared database link <link_name> connect to <remote_user> identified by <remote_password> AUTHENTICATED BY <remote_user> IDENTIFIED BY <remote_password> using "<tns-string>";



What is the reason for the authentication clause? The Oracle docu states "These credentials are required to protect the remote shared server processes from clients that masquerade as a database link user and attempt to gain unauthorized access to information." What does this mean? I can't see any benefit as I have to know both password for database link creation.


Cheers, Markus






and Chris said...

The point is to protect the remote database. Many processes from the local system could access the remote using the same connection.

So instead of a 1:1 mapping of connections from local to remote, you have M:1. This potentially allows an attacker to pretend to be a process from the local server.

By authenticating against a specific user in the remote database you make this harder.

Rating

  (2 ratings)

Is this answer out of date? If it is, please let us know via a Comment

Comments

How to pretend to be a process from the local server?

Markus, February 16, 2018 - 8:57 am UTC

<Quote>
This potentially allows an attacker to pretend to be a process from the local server.
</Quote>

Sorry. I didn't get it. What does that mean exactly? How should that work?

Chris Saxon
February 16, 2018 - 11:36 am UTC

The connection on the remote database expects many connections from different processes on the local db.

I'm a hacker. I create a program that pretends to be the local database with the DB link.

If there's no authentication, it's much easier for me to spoof this connection from the local database.

Just one password more?

Markus, February 16, 2018 - 12:03 pm UTC

So the only difference is that a hacker has to know two instead of one Password?

You said this applies only to SHARED database links. Would this risk not also apply to normal private database links?


More to Explore

Administration

Need more information on Administration? Check out the Administrators guide for the Oracle Database