Las respuestas son
- No (el nombre de usuario es visible) / sí (la mayoría de las contraseñas están ocultas)
- y 3 No normalmente, a menos que pague extra e implemente las Opciones de seguridad avanzadas.
Para completar (1).
La base de datos Oracle tiene un hash de la contraseña, no la contraseña real. Cuando se conecta, Oracle elige un valor y lo envía al cliente. El cliente tiene la contraseña ingresada por el usuario para obtener el mismo hash que la base de datos está almacenando, y luego la utiliza para calcular el valor enviado por la base de datos. Envía eso de vuelta a la base de datos.
Mientras tanto, la base de datos también ha generado ese valor con la misma contraseña de hash.
Si el cliente tiene el mismo valor que la base de datos, se supone que proviene del mismo punto de inicio (es decir, la contraseña del usuario).
Explicación completa
El algoritmo 11g es un poco diferente, pero la idea fundamental es que no se pasa la contraseña En texto claro o hash trivial. Se necesitaría un atacante serio.
Si el script se encuentra en el servidor de la base de datos, puede usar la autenticación del sistema operativo en lugar de una contraseña. Hay otros trucos que puede hacer (por ejemplo, hacer que la base de datos determine de qué dirección IP proviene una lista blanca / negra).