Como posso saber qual conta de usuário está sendo usada para executar uma ação (no contexto do SQL Server)?

2

Por exemplo, ao instalar o SQL Server 2008, eu tive que escolher uma conta para o mecanismo de banco de dados executar como.

Quando fui anexar um arquivo de banco de dados 2005 ao SQL Server Management Studio, houve um erro de permissão que impedia a atualização do banco de dados. Verifiquei os arquivos do banco de dados e a conta "SQLServerMSSQLUser $ ComputerName $ MSSQLSERVER" tem permissões totais 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, eu adicionei permissões completas para o meu nome de usuário, e então funcionou.

Este 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 manipulando a conexão de um banco de dados, mas aparentemente não!

Além disso, uma vez que o banco de dados foi anexado, parece ter removido o meu nome de usuário da lista de segurança! Então, imagino que, se eu destacar o banco de dados, terei que redefinir minhas permissões nos arquivos mais uma vez antes de poder anexar novamente o banco de dados.

    
por Triynko 13.07.2009 / 18:49

3 respostas

1

Encontrei a resposta aqui:
link

A documentação relevante do SQL Server está aqui:
link
"Quando você desanexa ou anexa um banco de dados, o Mecanismo de Banco de Dados tenta personificar a conta do Windows da conexão que está executando 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 logons do SQL Server, a representação pode falhar. "

Além disso, ele afirma claramente: "As permissões de acesso ao arquivo são definidas durante qualquer uma das seguintes operações do 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.

    
por 13.07.2009 / 20:38
2

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 SSMS está sendo executada e também precisa de permissões para o arquivo.

Desde que a conta de serviço tenha permissão para o arquivo, você poderá anexar o banco de dados usando t-sql.

Tente usar o sp_ attach _db Você precisará fazer login como sa ou usar < href="http://msdn.microsoft.com/en-us/library/ms186297.aspx"> setuser ou use o CRIAR BANCO DE DADOS ... PARA ANEXAR

Se você realmente precisar usar o SSMS & o pensamento de T-SQL faz você querer criar uma conta de usuário para o serviço sql server rodar sob & em seguida, use essa conta para iniciar o SSMS.

    
por 13.07.2009 / 19:08
1

Se você souber o nome do arquivo executável, a guia Processos do Gerenciador de tarefas mostrará o nome do usuário que está executando esse arquivo.

    
por 13.07.2009 / 18:53