Hoy vamos a hablar de ese momento en el que tenemos de toquetear objetos de otro usuario, bien porque nadie tiene el password de ese usuario (si es que son...) , bien porque queremos comprobar que ese usuario puede hacer eso que nosotros decimos que puede hacer y el asegura que no , o bien por oscuras intenciones... :-{
En Oracle tenemos la siguiente sentencia:
ALTER SESSION SET CURRENT_SCHEMA=SCOTT;
Aunque esto nos es útil para toquetear sus objetos sin necesidad de estar poniendo siempre el
SCOTT.OBJETO
no nos será útil para comprobar que ese privilegio que le hemos concedido a un usuario esté funcionando correctamente, ya que en realidad continuamos siendo el mismo usuario:
SQL> conn / as sysdba
SQL> alter session set CURRENT_SCHEMA=SCOTT;
Sesi�n modificada.
SQL> select user from dual;
USER
------------------------------
SYS
En Sybase tenemos el comando setuser, ahora mismo no dispongo de un gestor Sybase a mano, pero puedo decir que este comando es más potente que el comando de Oracle, ya que realmente estás suplantando al usuario, pudiendo por ejemplo dar permisos sobre objetos del usuario suplantado.
Y por último, la suplantación definitiva!!!!!
Lo vamos a probar con Oracle, pero seguro que también se puede hacer en Sybase.
Este método sólo es para utilizarlo en situaciones extremas, y por el bien de la humanidad, nunca para hacer el mal.
Ahí vamos:
-Primero miramos el password encriptado del usuario
SQL> select username, password from dba_users where username='SCOTT';
USERNAME PASSWORD
------------------------------ ------------------------------
SCOTT F894844C34402B67
-Cambiamos el password del usuario SCOTT
SQL> alter user SCOTT identified by lion;
Usuario modificado.
-Nos conectamos con el nuevo password y hacemos lo que tengamos que hacer
SQL> conn scott/lion
Conectado.
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
-Luego restauramos el password antiguo
SQL> conn / as sysdba
Conectado.
SQL> alter user scott identified by values 'F894844C34402B67';
-Y ya está.
SQL> conn scott/tiger;
Conectado.
Esto, como ya he dicho puede ser utilizado para hacer cosas muy feas, pero también nos puede ser útil por ejemplo en esa aplicación antigua que ya nadie sabe como funciona, y nadie se atreve a tocar, como la aplicación se conencta con un usuario del que nadie sabe el password no podemos modificarlo, pero si necesitamos entrar con este usuario, siempre podemos hacer esto.
Hasta lueg
dilluns, 19 de maig del 2008
Subscriure's a:
Comentaris del missatge (Atom)
Cap comentari:
Publica un comentari a l'entrada