Skip to content
pvmehta.com

pvmehta.com

  • Home
  • About Me
  • Toggle search form
  • Running select from V$ views from remote server Linux/Unix
  • backspace in SQL Plus not working then..? Linux/Unix
  • How do I get Oracle to automatically start when my server boots up? Oracle
  • Oracle10g – Using SQLAccess Advisor (DBMS_ADVISOR) with the Automatic Workload Repository Oracle
  • On solaris 10, “S” link is not part of $ORACLE_HOME/bin/oracle as default. ( For 9.2.0.8) Oracle
  • ENQ: KO – FAST OBJECT CHECKPOINT tips Oracle
  • remove archfiles only when it is applied to DR rm_archfiles.sh Linux/Unix
  • get_vmstat_solaris Oracle
  • myfile Oracle
  • Gather Stats manually using DBMS_STATS after disabling DBMS_SCHEDULER jobs as previous entry Oracle
  • To see how much time or progress of long transaction Oracle
  • metalink all dynamic view reference notes. Oracle
  • CPU Core related projections AWS
  • oracle fast start failover best practice Oracle
  • Oracle 11g Training on 29JAN1010 Oracle

Database link password in user_db_links

Posted on 09-Dec-2009 By Admin No Comments on Database link password in user_db_links

Problem Description:

~~~~~~~~~~~~~~~~~~~~

Database link passwords are stored as plaintext. A database link is a mechanism

used to provide a method of transparently accessing one server from another.

When creating a database link, a user name and password of the account on the remote

server can be specified. Creating the database link without credentials works

only if the user exists on both databases and has the same password.

Once this is done, all queries using the link have the privilege of the

indicated account on the remote server. By omitting an account and password when

creating a database link, the account and password of the user connecting

through the link is used. Indicating the username and password of an account to

use for all connections through a link can lead to passwords being exposed.

Database link passwords until recently (version 10gR1) were stored unencrypted in

the database. Users with SELECT privilege on the SYS.LINK$ table could view the

passwords in plain text. Setting up links to authenticate as the current user

prevents unencrypted passwords from being exposed, prevents linked servers from

being compromised, and provides increased accountability.

Oracle accounts were found with permission to view the table SYS.LINK$. Access

to view the table SYS.LINK$ should be restricted because database link passwords

are stored unencrypted in this table.

Possible Symptoms:

~~~~~~~~~~~~~~~~~~

If you have SELECT ANY TABLE privilege on a database, you can see the password

of the user that can belong to a remote or local database(s) in the SYS.LINK$ table

and using this password, you can connect these remote or local databases at will.

We rely on sys to protect link$. If customers don’t trust a DBA, there are many

things the DBA can do that make any encryption attempt useless.

Important change in the SELECT ANY DICTIONARY system privilege

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In Oracle release 10gR1, the access to SYS.LINK$ was removed from the

SELECT ANY DICTIONARY system privilege (hence the ORA-1031 error), while this

still doesn’t solve the general problem: tools such as Oracle Enterprise Manager

that depend on SELECT ANY DICTIONARY to be available can be deployed without

access to SYS.LINK$.

Workarounds:

~~~~~~~~~~~~

There are no workarounds to protect against this potential vulnerability but

it is possible to use this:

-> Drop the database link and create a link without specifying an account and

passwords.

To drop a database link, execute the command:

SQL> drop database link ;

To re-create a link without hard coding the password, execute the command:

SQL> create database link using ;

-> To revoke permissions from the account or role, execute the following

command:

SQL> revoke select on SYS.LINK$ from ;

Patches:

~~~~~~~~

Currently there is not a patched Installer available to deal with this problem.

One of the workarounds listed above must be used.

It is no more the case under version 10g Release 2 (10.2.0.x), the LINK$ table

now contains a new column PASSWORDX that contains the encrypted database link

password. Details of the encryption scheme will not be disclosed for obvious reasons.

Oracle, SQL scripts

Post navigation

Previous Post: find_err.sql for finding errors from dba_errors.
Next Post: Find_table_size.sql

Related Posts

  • Rename Oracle Instance Name Oracle
  • Wait Based Tuning Step by step with SQL statement Oracle
  • To check whether standby is recovering properly or not?? Oracle
  • temp_use.sql diplays usage of temp ts Oracle
  • Oracle Statspack survival Guide Oracle
  • Histogram Overview Oracle

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Categories

  • Ansible (0)
  • AWS (2)
  • Azure (1)
  • Django (0)
  • GIT (1)
  • Linux/Unix (150)
  • MYSQL (5)
  • Oracle (403)
  • PHP/MYSQL/Wordpress (10)
  • POSTGRESQL (1)
  • Power-BI (0)
  • Python/PySpark (7)
  • RAC (18)
  • rman-dataguard (26)
  • shell (151)
  • SQL scripts (349)
  • SQL Server (6)
  • Uncategorized (5)
  • Videos (0)

Recent Posts

  • Key Management in Oracle: The Core Issue: Missing Master Key12-May-2026
  • SAT Mathematics 10 questions and answer at the end.30-Apr-2026
  • top 10 AI news today30-Apr-2026
  • runon_allpdbs_show_conname.sh23-Apr-2026
  • runon_allcdbs_find_pdbs.sh23-Apr-2026
  • Running PDB on single node in RAC09-Apr-2026
  • find_arc.sql09-Apr-2026
  • pvm_pre_change.sql08-Apr-2026
  • find_encr_wallet.sql08-Apr-2026
  • find_pdbs.sql08-Apr-2026

Archives

  • 2026
  • 2025
  • 2024
  • 2023
  • 2010
  • 2009
  • 2008
  • 2007
  • 2006
  • 2005
  • arch_configUOCIOTTO.ora Oracle
  • cold backup scripts to copy locally Linux/Unix
  • How to find the real execution plan and binds used in that explain plan in Oracle 10g?? Oracle
  • Formatter Explain plan Output 1 Oracle
  • SAT Mathematics 10 questions and answer at the end. Uncategorized
  • telnet listening Linux/Unix
  • remove archfiles only when it is applied to DR rm_archfiles.sh Linux/Unix
  • Find_table_size.sql Oracle

Copyright © 2026 pvmehta.com.

Powered by PressBook News WordPress theme