Como atualizar uma senha de usuário de banco de dados no servidor SQL 2012
Preciso de actualizar a senha de um dos utilizadores na pasta de segurança da base de dados no servidor SQL 2012. Infelizmente, não temos uma ADB interna e, consequentemente, precisamos de alguma ajuda. Disseram-me que tenho privilégios do sysadmin neste servidor SQL, mas não consigo encontrar onde actualizar a senha de um utilizador na base de dados. Quando pesquisei isto no Google, o msdn mostra-me como actualizar uma autenticação no servidor SQL 2012, mas este utilizador não está listado na pasta Security\Logins neste servidor mas este Utilizador está apenas sob a pasta database\Security\Users.
eu tinha tentado o comando {[[0]} mas só consegui este erro:
Msg 15151, Nível 16, Estado 1, Linha 2
não pode alterar o login 'ATM', porque ele não existe ou você não tem permissão.
qualquer ajuda / direcção seria apreciada. Obrigado.
1 answers
Esta é a diferença entre logins eutilizadores e como se relacionam entre si:
- Logins-Instance level principals that allow an entity to connect to the SQL Server instance. Não concedem, pela sua natureza, qualquer acesso a bases de dados sobre a instância. A exceção a isso é um login com os direitos do sysadmin pode usar um banco de dados porque eles são o sysadmin, mas por causa das permissões de nível do sysadmin. ([11]}utilizadores-princípios de Base de dados que permitem que uma entidade se conecte a um banco de dados do servidor SQL. Os usuários são associados com logins via SIDs, criando uma relação entre os dois e permitindo um login para se conectar à instância e, em seguida, usar o usuário associado para se conectar à base de dados.
O que normalmente acontece com as logins autenticadas SQL e os usuários de banco de dados em uma restauração é que o SIDS estará fora de sincronia ou um login não existirá para um usuário na base de dados, quebrando assim a relação. Relacao deve ser reparado antes que você possa se conectar à base de dados usando esse login, porque aos olhos do servidor SQL esses principals não estão mais conectados. Se o login não existir, você terá que primeiro criá-lo de modo a associá-lo ao utilizador:
--Windows login (Active Directory pass through)
CREATE LOGIN [DOMAIN\foo] FROM WINDOWS;
--SQL Authenticated
CREATE LOGIN [foo] WITH PASSWORD='5+r0ngP@55w0rd';
Assim que o utilizador existir, associe-o ao utilizador:
ALTER USER [foo] WITH LOGIN=[foo]
Você pode usar a seguinte consulta no contexto da sua base de dados para verificar se há órfãos:
select
dp.name [user_name]
,dp.type_desc [user_type]
,isnull(sp.name,'Orhphaned!') [login_name]
,sp.type_desc [login_type]
from
sys.database_principals dp
left join sys.server_principals sp on (dp.sid = sp.sid)
where
dp.type in ('S','U','G')
and dp.principal_id >4
order by sp.name