Como poner password a MDB

29/10/2004 - 20:09 por TT | Informe spam
Hola a todos:

No se como puedo hacer esto, os cuento por si me podeis echar una mano :

Necesito poder poner un password a un MDB ya creado.

Saludos

Preguntas similare

Leer las respuestas

#1 Nathaly
30/10/2004 - 18:54 | Informe spam
MDB????' te refieres a una base de datos de access???'
BUeno sie s asi solo tienes que entrar a la base de datos y elegir la opcion
de herramientas o seguridad(sorry no recuerdo bien) y ahi encuentras la
opcion de cambiar clave o ponerla

"TT" wrote in message
news:
Hola a todos:

No se como puedo hacer esto, os cuento por si me podeis echar una mano :

Necesito poder poner un password a un MDB ya creado.

Saludos





Respuesta Responder a este mensaje
#2 Pedro Luna Montalvo, MVP
31/10/2004 - 16:10 | Informe spam
Hmmmacaso te refieres a establecer la contraseña por codigo???

Si ese es el caso, te comento que hace algun tiempo tenia un sistema
pequeño, cuyo acceso dependia de la constraseña a una base de datos Access.

Ahi implemente una rutina para cambiar la contraseña, pero utiliza DAOno
estoy seguro si ADO o ADO.NET ofrece alguna forma alternativa, pero mientras
tanto, traduje ese codigo a C# y lo probe...y aun funciona! :)


private bool ChangeDatabasePassword(string mdbPath, string oldPassword,
string newPassword) {

// Cargar el motor de DAO
Type daoType = Type.GetTypeFromProgID("DAO.DBEngine.36");
object daoEngine = Activator.CreateInstance(daoType);

// Invocar al método OpenDatabase, y recuperar el objeto Database
object daoDatabase = daoType.InvokeMember("OpenDatabase",
BindingFlags.InvokeMethod | BindingFlags.Public, null,
daoEngine,
new object[] {
mdbPath, true, false,
";pwd=" + oldPassword
});

// Recuperar la información del tipo DAO.Database
Type daoDatabaseType = daoDatabase.GetType();

// Invocar al método de cambio de contraseña de la base de datos
daoDatabaseType.InvokeMember("NewPassword",
BindingFlags.InvokeMethod | BindingFlags.Public, null,
daoDatabase,
new object[] { oldPassword, newPassword });

// Invocar el metodo de cerrar la base de datos
daoDatabaseType.InvokeMember("Close",
BindingFlags.InvokeMethod | BindingFlags.Public, null,
daoDatabase,
new object[] {});

// Finalizamos!!!
return true;
}


Saludos
Pedro Luna, [MVP VB.NET]
Gye, Ecu
Respuesta Responder a este mensaje
#3 TT
31/10/2004 - 21:48 | Informe spam
Muxas gracias lo probare, yo e estado investigando y encontre algo, pero no
se pq demonios no me la cambia, lo pongo aki por si le interesa a alguien:

JRO.JetEngineClass jet=new JRO.JetEngineClass();
string Pswd="XXXX";
string dest;
string orig;
orig = "Provider=Microsoft.Jet.OLEDB.4.0" ;
orig += ";Data Source=" + NombreB ;
orig += ";Jet OLEDB:Database Password=" + Pswd ;

string nuevoPass="XX";
string nueva="c:\\miBBDD.mdb";
dest = "Provider=Microsoft.Jet.OLEDB.4.0" ;
dest += ";Data Source=" + nuevoPass;
dest+=";Jet OLEDB:Engine Type=5";
dest += ";Jet OLEDBatabase Password=" + newpass;
try
{
jet.CompactDatabase(orig,dest);
}

"Pedro Luna Montalvo, MVP" escribió en
el mensaje news:
Hmmmacaso te refieres a establecer la contraseña por codigo???

Si ese es el caso, te comento que hace algun tiempo tenia un sistema
pequeño, cuyo acceso dependia de la constraseña a una base de datos
Access.

Ahi implemente una rutina para cambiar la contraseña, pero utiliza
DAOno
estoy seguro si ADO o ADO.NET ofrece alguna forma alternativa, pero
mientras
tanto, traduje ese codigo a C# y lo probe...y aun funciona! :)


private bool ChangeDatabasePassword(string mdbPath, string oldPassword,
string newPassword) {

// Cargar el motor de DAO
Type daoType = Type.GetTypeFromProgID("DAO.DBEngine.36");
object daoEngine = Activator.CreateInstance(daoType);

// Invocar al método OpenDatabase, y recuperar el objeto Database
object daoDatabase = daoType.InvokeMember("OpenDatabase",
BindingFlags.InvokeMethod | BindingFlags.Public, null,
daoEngine,
new object[] {
mdbPath, true, false,
";pwd=" + oldPassword
});

// Recuperar la información del tipo DAO.Database
Type daoDatabaseType = daoDatabase.GetType();

// Invocar al método de cambio de contraseña de la base de datos
daoDatabaseType.InvokeMember("NewPassword",
BindingFlags.InvokeMethod | BindingFlags.Public, null,
daoDatabase,
new object[] { oldPassword, newPassword });

// Invocar el metodo de cerrar la base de datos
daoDatabaseType.InvokeMember("Close",
BindingFlags.InvokeMethod | BindingFlags.Public, null,
daoDatabase,
new object[] {});

// Finalizamos!!!
return true;
}


Saludos
Pedro Luna, [MVP VB.NET]
Gye, Ecu



Respuesta Responder a este mensaje
#4 Pedro Luna Montalvo, MVP
01/11/2004 - 19:04 | Informe spam
orig += ";Jet OLEDB:Database Password=" + Pswd ;



Yo tambien intente usar esto, pero nunca me funciono. :P
Al final opte por usar la opcion de DAO.

Saludos
Pedro Luna, [MVP VB.NET]
Gye, Ecu
Respuesta Responder a este mensaje
#5 TT
01/11/2004 - 20:10 | Informe spam
Ahora me surguio otro problema :(

La creacion de la base de datos la creo con ADOX.Catalog

Pos bien hasta q no cierro la aplicacion no hay manera de renombrar ni
borrar ni ponerle el password, hasta q no cierro la aplicacion es como si
dejara abierto el fichero abierto o bloquedo, y no se como liberarlo, pego
el codigo por si os paso algo parecido:

string strConn="Provider=Microsoft.JET.OLEDB.4.0;";
strConn += "Data Source = " + NombreMDB;
strConn += ";Jet OLEDB:Database Password=;";
ADOX.CatalogClass cat=new ADOX.CatalogClass();
cat.Create(strConn);


Y todo el problema viene por que dicha base de datos la quiero contruir con
el resultado de una consulta SQL, y si le pongo antes el password no soy
capaz de introducir los datos pq al ejecutar la sentencia SQL da el error q
el password no es correcto, entonces pense q poniendo el password depues de
contruir la base de datos soluccionaria el problema, pero creo me estoy
encontrando mas poblemas de los pensados en un primer momento.

gracias a todos

"Pedro Luna Montalvo, MVP" escribió en
el mensaje news:
orig += ";Jet OLEDB:Database Password=" + Pswd ;



Yo tambien intente usar esto, pero nunca me funciono. :P
Al final opte por usar la opcion de DAO.

Saludos
Pedro Luna, [MVP VB.NET]
Gye, Ecu


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida