Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

VITORH

Tem como descobrir usuário e senha através de um arquivo .MDF?

Recommended Posts

Amigos,

 

meu tio perdeu o CD de instalação de um programa de locação de carros que foi feito em VB.

 

Eu preciso instalar esse programa em outra máquina e tenho somente os arquivos de dados MDF e LDF e também o executável (.exe) do programa que acessa o SQL Server.

 

Eu fiz o attach desse MDF no SQL Server e ele criou a base corretamente, mas o problema é que eu não sei qual usuário e senha estão que configurados no executável para acessar a base de dados. Não tenho mais o fonte desse .exe

 

1 - Tem como saber qual é o usuário e senha originais a partir desses arquivos MDF e LDF ?

2 - Tem como liberar acesso total a essa base de dados para que qualquer aplicação faça o acesso, independente de usuário ou senha, somente com o nome do banco de dados?

 

Preciso muito da ajuda de vocês, esse software não tem mais suporte, ninguem tem o CD dele.

 

Conto com a ajuda de vocês. Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vitorh, bem vindo ao fórum!

 

Vamos por partes:

1 - Tem como saber qual é o usuário e senha originais a partir desses arquivos MDF e LDF ?

Sim. Você já conseguiu acessar esta base? Se sim, execute o comando:

USE DATABASE -- ONDE "DATABASE" É O NOME DA BASE
GO
exec sp_change_users_login @Action='Report';
GO

Vão aparecer uma série de usuário que não existem no servidor e estao criados na base. Pode ser um destes.

Ou pode ser feito assim:

USE DATABASE -- ONDE "DATABASE" É O NOME DA BASE
GO
select * from sys.syslogins
GO

Destes modos você vai ter os usuários da base. Dificil saber qual é o da aplicação. Pode tentar verificar quem tem acesso a somente esta base, mas não é regra.

Vá no MMS (SQL Management Studio)

Item Security --> Logins.

De um clique com o botao direito sobre um deles --> Properties --> User Maping

Nesta tela vai ter as permissoes por database em seu servidor

Agora a senha, já vai ser uma "novela mexicana", pois se você não sabe, na sintaxe do syslogins, vai ter um campo "password". Verifique se não esta NULL, se estiver, não vei ter como saber não.

 

2 - Tem como liberar acesso total a essa base de dados para que qualquer aplicação faça o acesso, independente de usuário ou senha, somente com o nome do banco de dados?

Neste caso, teria que criar um usuário com acesso full a esta base (owner). Mas surgem problemas a serem checados como, que tipo de acesso precisa ter? é somente a esta base?

 

Algumas coisas que podem influenciar na conexao. Como esta base saiu de outra maquina, provavelmente, ela tinha um nome, se voce colocar esta base em um servidor com nome diferente não vai funcionar o programa. Geralmente, este tipo de programa tem um arquivo de configuracao (.ini, .config, .webconfig) que possui as configurações, tente achar ele.

 

 

Bom, boa sorte e precisando só postar.

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito Obrigado A.Jr

 

você me ajudou muito, mas o sistema ainda não conseguiu conectar, esta acusando senha errada.

 

Vamos lá:

Ou pode ser feito assim:

USE DATABASE -- ONDE "DATABASE" É O NOME DA BASE
GO
select * from sys.syslogins
GO

Foi dessa 2º maneira que apareceram registros na pesquisa. O usuário da aplicação eu já sabia que era o "sa" mas já a senha não foi possivel saber (não apareceu NULL), veja a imagem abaixo.

 

ex.png

 

Não tem como descobrir qual é a senha a partir desses códigos?

 

De um clique com o botao direito sobre um deles --> Properties --> User Maping

Nesta tela vai ter as permissoes por database em seu servidor

Agora a senha, já vai ser uma "novela mexicana", pois se você não sabe, na sintaxe do syslogins, vai ter um campo "password". Verifique se não esta NULL, se estiver, não vei ter como saber não.

Não consegui achar Item Security --> Logins , qual o caminho?

 

Algumas coisas que podem influenciar na conexao. Como esta base saiu de outra maquina, provavelmente, ela tinha um nome, se voce colocar esta base em um servidor com nome diferente não vai funcionar o programa. Geralmente, este tipo de programa tem um arquivo de configuracao (.ini, .config, .webconfig) que possui as configurações, tente achar ele.

Esse sistema roda localmente, é um sistema simples. A base esta com mesmo nome (db_dex), o caminho é o localhost e o usuário é o "sa". O problema é justamente a SENHA. Por isso pensei em configurar o SQL Server para deixar passar qualquer conexão mesmo que a senha esteja errada para o sistema funcionar. Será que tem como?

 

Obrigago mesmo.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, então vamos lá:

 

Foi dessa 2º maneira que apareceram registros na pesquisa. O usuário da aplicação eu já sabia que era o "sa" mas já a senha não foi possivel saber (não apareceu NULL), veja a imagem abaixo.

 

Não tem como descobrir qual é a senha a partir desses códigos?

Infelizmente (ou felizmente) NÃO! Não tem como descobrir.

 

Esse sistema roda localmente, é um sistema simples. A base esta com mesmo nome (db_dex), o caminho é o localhost e o usuário é o "sa". O problema é justamente a SENHA. Por isso pensei em configurar o SQL Server para deixar passar qualquer conexão mesmo que a senha esteja errada para o sistema funcionar. Será que tem como?

Mesmo que você deixe o usuario SA sem senha, a aplicação faz uma validação, ou seja, ela possui uma senha, então teria que saber a senha.

Talvez pelo SQLProfiler consiga saber a linha de conexão, talvez.

 

Qual a sua versão do SQL?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Infelizmente (ou felizmente) NÃO! Não tem como descobrir.

 

Que pena!

 

 

Qual a sua versão do SQL?

 

é a 2008 R2

 

Como utilizo o SQLProfiler para mapear essa conexão?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lá vmaos nós:

1 - Feche a aplicação.

2 - Abra o SQLProfiler

Para utilizar o SQLProfiler: aula expressa :P

O SQLProfiler serve para mapear o que acontece no banco de dados, tudo pode ser mapeado por ele, tanto conexoes, como procedures sendo executadas, variaveis de ambiente. Uma ferramenta completa de monitoramento do banco de dados.

 

 

Vá em:

 

INICIAR --> PROGRAMAS --> Microsoft SQL Server 2008 --> Ferramentas de Desempenho --> SQL Server Profiler

Pode ser que esteja em inglês

 

No SQLProfiler:

File --> New Trace

Vai aparecer uma tela de conexao. Coloque localhost ou o nome do servidor e conecte;

 

Na próxima tela, é o tipo de eventos que você vai mapear, não vou entrar em detalhes dela, não é o caso ainda. Clique em RUN

Deve aparecer uma tela com varias linhas e campos. Os campo importantes são:

TextData: onde é mostrado o comando que esta sendo executado naquele momento

Application Name: que é a aplicação que está sendo executada.

 

3 - Abra a aplicação e espere dar a mensagem de erro.

 

4- Vá no SQLProfiler e pare o que esta rodando. Tem um botão stop.

 

5- verifique na coluna TextData e na coluna Application Name, se aparece a aplicação.

 

De momento, consigo pensar nisso.

 

Veja se funciona, e retorne!!!

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.