Notas:
1.
2. Especificar un valor NULL para el atributo
3. Al establecer satisfactoriamente el valor del atributo de conexión
4. Si se ha establecido el atributo SQL_ATTR_TRUSTED_CONTEXT_PASSWORD,
54
Guía del usuario
(SQLExecDirect por ejemplo). En ambos casos, además de los errores y avisos
que normalmente ha de comprobar, asegúrese de que comprueba los errores
listados en Tabla 8. Los errores de Tabla 8 indican que ha fallado la acción de
conmutar usuario.
Tabla 8. Errores que indican anomalías al conmutar usuarios
SQLCODE
SQL1046N
SQL30082N
SQL0969N con un error nativo de -20361
Si falla la acción de conmutar usuario, la conexión estará en estado
desconectado hasta que conmute de modo satisfactorio a otro usuario. Puede
conmutar usuarios en una conexión fiable en estado desconectado pero no
puede acceder al servidor de base de datos con la misma. Una conexión en
estado desconectado permanecerá en dicho estado hasta que conmute usuarios
de modo satisfactorio en el mismo.
Importante: Conmutar usuarios sin proporcionar una contraseña elude la
autentificación del servidor de la base de datos. La aplicación no
debe permitir conmutar a un ID de autorización sin una
contraseña a menos que la aplicación haya validado y
autentificado previamente dicho ID de autorización. Hacer lo
contrario creará un agujero en la seguridad.
SQL_ATTR_TRUSTED_CONTEXT_USERID equivale a especificar el ID de
autorización del sistema de contexto fiable (el ID de usuario utilizado al crear
la conexión fiable explícita).
SQL_ATTR_TRUSTED_CONTEXT_USERID en una conexión fiable explícita, la
conexión se restaurará inmediatamente. El resultado de restaurar equivale a
crear una conexión nueva utilizando los atributos de conexiones originales de
dicha conexión. Esta restauración se produce incluso en el caso de que el valor
en el que ha establecido el atributo de conexión sea el ID de autorización del
sistema o NULL o el mismo valor que posee el atributo en la actualidad.
la contraseña se autentificará durante el proceso de conmutar usuario, incluso
en el caso de que el contexto fiable que haya permitido la conexión fiable no
requiera la autentificación para la acción de conmutar usuario para dicho ID de
autorización. Esta acción da como resultado una actividad general innecesaria.
Esta regla no se aplica al ID de autorización del sistema de contexto fiable. Si el
ID de autorización del sistema de contexto fiable no requiere la autentificación
al conmutar al mismo, no se autentificará incluso cuando se proporciona una
contraseña.
Significado
El contexto fiable que ha permitido que esta
conexión fiable no se haya configurado para
permitir conmutar al ID de autorización al
que está intentando conmutar. No podrá
conmutar a dicho ID de autorización hasta
que cambie el contexto fiable.
La contraseña facilitada no es correcta para
el ID de autorización al que está
conmutando.
Hay alguna restricción de nivel de base de
datos que impide conmutar al usuario.