Cómo conectarse a una base de datos Oracle en un host remoto
Notas sobre la conexión del cliente ORACLE al servidor
1. A través del protocolo SQL*NET, el cliente ORACLE generalmente necesita configurar sqlnet.ora, tnsnames.ora e init. ora al conectarse al servidor.
Sus directorios predeterminados están en el directorio $ORACLE_HOME/network/admin
También puede configurar la variable de entorno TNS_ADMIN para que apunte a los directorios sqlnet.ora y tnsnames.ora que desee. use
Por ejemplo:
TNS_ADMIN=/home/oracle/config/9.0.1;export TNS_ADMIN
El archivo sqlnet.ora determina cómo encontrar el alias del servidor de base de datos
Los parámetros predeterminados son
El parámetro SQLNET.AUTHENTICATION_SERVICES= (NONE, NTS) indica qué método de autenticación utiliza el usuario cuando se conecta al servidor Oracle. NONE indica autenticación Oracle. y NTS indica autenticación del sistema operativo. Hay dos métodos que se pueden utilizar juntos.
Los usuarios de dominio y los usuarios locales del grupo ORA_DBA no necesitan un nombre de usuario ni una contraseña de Oracle para iniciar sesión en Oracle, y los usuarios de este grupo tienen permisos SYSDBA después de iniciar sesión en la base de datos (para múltiples instancias, puede crear un grupo como este ORA_SID_DBA, donde SID se refiere al nombre de la instancia) De manera similar: los miembros del grupo ORA_OPER tienen los permisos de la función SYSOPER.
Método de inicio de sesión sqlplus "/ as sysdba"
o sqlplus nolog, luego SQL>conectar / como sysdba
NAMES.DEFAULT_DOMAIN = WORLD
NAMES.DIRECTORY_PATH = (TNSNAMES, ONAMES, HOSTNAME)
Indica el método de análisis de la cadena de host utilizada al conectarse al cliente
TNSNAMES indica que el archivo TNSNAMES.ORA es usado para analizar
ONAMES significa usar su propio servidor de nombres (Oracle Name Server) para la resolución. Actualmente, Oracle recomienda usar el protocolo ligero de acceso a directorios LDAP para reemplazar ONAMES.
HOSTNAME significa usar host; archivo, DNS, NIS, etc. para resolver;
Si los nombres de dominio predeterminados de su cliente y servidor ORACLE son diferentes, debe comentar la primera línea con #
#NAMES.DEFAULT_DOMAIN = MUNDO
p>Hazlo ineficaz.
NAMES.DIRECTORY_PATH especifica el orden en el que se buscan los alias del servidor (archivo tnsnames.ora local, servidor de nombres, método de nombre de host)
El sqlnet.ora del servidor se puede configurar para verificar si el cliente está activo en el intervalo de tiempo
sqlnet.expire_time = 10
El impacto de Remote_Login_Passwordfile en init.ora en la autenticación
Tres valores opcionales:
NONE: Valor predeterminado, que indica que el sistema Oracle no utiliza un archivo de contraseña. Los usuarios privilegiados autenticados a través del sistema operativo tienen permisos SYSORA y SYSOPER EXCLUSIVO:
Indica que solo una instancia de base de datos puede. utilice el archivo de contraseña
2. Permitir que los permisos SYSORA y SYSOPER se asignen a otros usuarios distintos de SYS
SHARED:
1. se puede utilizar el archivo de contraseña
2. No está permitido asignar permisos SYSORA y SYSOPER a otros usuarios que no sean SYS
Entonces, si desea iniciar sesión como sistema operativo, Remote_Login_Passwordfile debe establecerse en NONE
Cuando el usuario de inicio de sesión no es miembro del grupo ORA_DBA ni del grupo ORA_OPER, la base de datos de inicio de sesión debe crear el mismo nombre de usuario que el usuario actual del sistema operativo en Oracle. el usuario actual es un usuario de dominio, el nombre es: nombre de dominio\su nombre, si es local Para usuarios de computadoras, el nombre es: nombre de computadora\su nombre
Método de creación:
create " domainname\yourname" identificado externamente;
Sistema operativo, modifique HKEY_LOCAL_MACHINE\SOFTWARE Agregue AUTH_PREFIX_DOMAIN en \ORACLE\HOME0 y establezca el valor en FALSE. Puede ignorar el nombre de dominio al crear un usuario de Oracle.
De esta manera, hay un parámetro en init.ora que afectará cómo la base de datos coincide con un usuario de Windows y un usuario de Oracle os_authent_prefix = ""
El valor predeterminado está vacío Antes de Oracle8i, estaba vacío. no existe tal parámetro y se utilizó OPS$ como prefijo del nombre de usuario (la longitud máxima del nombre de usuario de Oracle está limitada a 30 caracteres)
Los detalles del alias del servidor de la base de datos están escritos en tnsnames.ora. El archivo se puede escribir de las siguientes maneras:
# Método de escritura general
APPDB =
( DESCRIPTION =
(ADDRESS_LIST =
(DIRECCIÓN = (PROTOCOLO = TCP)(HOST = 192.168.0.35)(PUERTO = 1521))
) p>
(CONNECT_DATA =
(SERVICE_NAME = appdb)
)
)
# Indicar claramente la conexión en modo dedicado Base de datos
APPD= p>
(DESCRIPCIÓN=
(DIRECCIÓN=(PROTOCOL=TCP)(HOST=192.168.0.35)(PUERTO=1521)) p>
(CONNECT_DATA=
(SERVICE_NAME=appdb)
(SERVIDOR=DEDICADO)))
# Equilibrar la carga en múltiples puertos de escucha Conectarse a la base de datos
APPS =
(DESCRIPCIÓN =
(DIRECCIÓN_LIST =
(DIRECCIÓN = (PROTOCOLO = TCP)(HOST = 192.168.0.35)(PUERTO = 1521))
(DIRECCIÓN = (PROTOCOLO = TCP)( HOST = 192.168.0.35)(PUERTO = 1856))
)
(CONNECT_DATA =
(SERVICE_NAME = appdb)
)
)
# Nota: Si el servidor de la base de datos usa MTS y el programa cliente necesita usar un enlace de base de datos, es mejor indicar claramente que el cliente usa el método de conexión directa dedicado.
# De lo contrario, encontrará muchos ERRORES DE ORACLE relacionados con el entorno distribuido.
# Generalmente, es mejor utilizar conexiones directas al servidor de la base de datos, a menos que su número de conexiones a la base de datos en tiempo real sea cercano a 1000.
2. /etc/hosts (UNIX)
o windows\hosts (WIN98) winnt\system32\drivers\etc\hosts (WIN2000)
Cliente El cliente debe escribir la relación correspondiente entre la dirección IP y el nombre de host del servidor de la base de datos.
127.0.0.1 localhost
192.168.0.35 oracledb oracledb
192.168.0.45 tomcat tomcat
202.84.10.193 bj_db bj_db
A veces, después de configurar el primer paso, la búsqueda del alias del servidor de la base de datos es exitosa,
pero sqlplus nombre de usuario/contraseña@nombredeservicio no funciona, y el enlace delgado jdbc tampoco puede funcionar,
No olvide realizar este paso en el cliente. La razón puede ser que la relación correspondiente entre la dirección IP del servidor y el nombre de host no esté configurada en el servidor DNS.
Si hay tanto IP privada como IP pública en Internet, la IP privada se escribe delante y la IP pública detrás.
Es mejor mantener una copia de seguridad antes de editar. También es mejor copiar y pegar al agregar una línea para evitar errores de espacios o caracteres de tabulación al editar hosts.
3. En el entorno de bases de datos múltiples ORACLE en UNIX, el cliente del sistema operativo necesita configurar las siguientes dos variables de entorno
ORACLE_SID=appdb export ORACLE_SID
TWO_TASK=appdb ;exportar TWO_TASK