Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
1235
Assunto : .NET
Titulo: Trocando a senha de logins SQL no banco

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon




O SQL Server permite que apliquemos para seus logins as políticas de contas do ambiente windows, o que pode envolver a política de troca de senhas, fazendo com que a senha do login expire e precise ser trocada.

Os logins do SQL Server na maioria dos cenários são utilizados por aplicações, então ativar o uso da politica de expiração de senha envolve criar um cenário em que a aplicação seja capaz de trocar a senha de seu usuário, criando novas senhas que apenas a aplicação conhecerá dinamicamente, podendo chegar a um cenário em que nenhum funcionário da empresa conhece diretamente a senha de acesso a banco utilizada pela aplicação.

Para habilitar a checagem de expiração

alter login lgQualquer with
check_policy=on,check_expiration=on
GO

Desabilitar é exatamente o oposto:

alter login lgQualquer with
check_expiration=off
GO

Observe que para o check_expiration estar ligado a checagem de policy deve estar ligada, porém essa esta última pode estar ligada sem que a checagem de expiração ocorra. Por exemplo, podemos checar a complexidade da senha sem checar a expiração da senha.

Na aplicação, uma vez que habilitamos uma possível mudança de senha, precisamos ficar atentos ao erro 18487 que indica que a senha expirou. Se a aplicação receber esse erro, precisará realizar a troca da senha.

Para fazer a troca de senha devemos utilizar a classe ServerConnection do namespace Microsoft.SqlServer.Management.Common. Veja um exemplo de um bloco catch utilizando esse objeto para fazer a troca da senha (alguns trechos foram suprimidos para uma demonstração mais simples):

catch (SqlException ex)


{


Console.ForegroundColor = ConsoleColor.Green;


if (ex.Number == 18487) //the password expired

{

string newPassword = generateNewPassword();
ServerConnection srvConn = new ServerConnection();
srvConn.ServerInstance = “myserver\\sql2k5”;
srvConn.LoginSecure = false;
srvConn.Login = “test”;
srvConn.Password = getPassword();
srvConn.ChangePassword(newPassword);
savePassword(); //save the new password for next connection

System.Threading.Thread.Sleep(3000);//give SQL server a chance to change the password and be ready

builder.DataSource = “myserver\\sql2k5”;
builder.InitialCatalog = “AdventureWorks”;
builder.UserID = “test”;
builder.Password = getPassword();
conn = new SqlConnection(builder.ConnectionString);

conn.Open();

}

Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br