![Como posso saber qual conta de usuário está sendo usada para executar uma ação (no contexto do SQL Server)?](https://rvso.com/image/488039/Como%20posso%20saber%20qual%20conta%20de%20usu%C3%A1rio%20est%C3%A1%20sendo%20usada%20para%20executar%20uma%20a%C3%A7%C3%A3o%20(no%20contexto%20do%20SQL%20Server)%3F.png)
Por exemplo, ao instalar o SQL Server 2008, tive que escolher uma conta para o mecanismo de banco de dados ser executado.
Quando anexei um arquivo de banco de dados de 2005 com o SQL Server Management Studio, ocorreu um erro de permissão que impediu a atualização do banco de dados. Verifiquei os arquivos do banco de dados e a conta "SQLServerMSSQLUser$ComputerName$MSSQLSERVER" tem permissões completas no arquivo.
Então imaginei que o SQL Server Management Studio estava sendo executado com meu nome de usuário, que não tinha permissões de gravação para atualizar o arquivo de banco de dados. Então, adicionei permissões completas ao meu nome de usuário e funcionou.
Esse incidente foi o que me levou a fazer essa pergunta. Como posso saber com certeza em qual conta uma ação está sendo executada? Achei que o mecanismo de banco de dados estaria lidando com a anexação de um banco de dados, mas aparentemente não!
Além disso, uma vez anexado o banco de dados, parece que meu nome de usuário foi removido da lista de segurança! Então imagino que se eu desanexar o banco de dados, terei que redefinir minhas permissões nos arquivos mais uma vez antes de poder anexar novamente o banco de dados.
Responder1
Parece que o SSMS está causando essa confusão. Meu palpite é que ter que selecionar os arquivos em uma caixa de diálogo significa que a conta em que o SSMS está sendo executado também precisa de permissões para o arquivo.
Contanto que a conta de serviço tenha permissão para o arquivo, você poderá anexar o banco de dados usando t-sql.
Tente usar osp_ anexar _dbVocê precisará fazer login como sa ou usardefinir usuário ou use oCRIAR BANCO DE DADOS... PARA ANEXAR
Se você realmentedeveuse SSMS e a ideia de T-SQL faz você querer vomitar e, em seguida, criar uma conta de usuário para o serviço sql server ser executado e, em seguida, usar essa conta para iniciar o SSMS.
Responder2
Se você souber o nome do arquivo executável, a guia Processos do Gerenciador de Tarefas mostrará o nome de usuário que está executando esse arquivo.
Responder3
Encontrei a resposta aqui:
http://www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/SQL-Server-2005/Q_22785783.html
A documentação relevante do SQL Server está aqui:
http://msdn2.microsoft.com/en-us/library/ms189128.aspx
"Quando você desanexa ou anexa um banco de dados, o Mecanismo de Banco de Dados tenta representar a conta do Windows da conexão que executa a operação para garantir que a conta tenha permissão para acessar o banco de dados e os arquivos de log. Para contas de segurança mistas que usam logins do SQL Server, a representação pode falhar."
Além disso, afirma claramente: "As permissões de acesso a arquivos são definidas durante qualquer uma das seguintes operações de banco de dados: criação, anexação, desanexação, modificação para adicionar um novo arquivo, backup ou restauração."
Obviamente, preciso de RTFM, haha.