Como resolver erros de acesso negado com stsadm -o retractsolution

8

Temos um farm de 2 servidores executando o MOSS 2007 SP1. Eu sou um membro do grupo Administradores nos dois servidores.

Também sou membro do grupo Administradores de Farm.

Eu precisava atualizar algumas soluções, então naturalmente comecei com o comando stsadm retractsolution nas soluções antigas. Não importa qual solução tente executar o comando, recebo 'Acesso negado'.

Felizmente, o arquivo ULS Log me fornece um pouco mais de informação:

System.Data.SqlClient.SqlException: Não é possível abrir o banco de dados "SharePoint_AdminContent" solicitado pelo logon. O login falhou. Falha no login para o usuário '*** Login no meu domínio ***'.

O que parece estranho aqui é o fato de o SharePoint estar tentando se conectar à MINHA conta usando a Autenticação Integrada do Windows em vez de se conectar à conta de serviço do Farm configurada. É claro que minha conta não tem acesso ao banco de dados de Conteúdo do administrador.

Portanto, a pergunta é: Minha conta precisa de permissões para o banco de dados de Conteúdo do administrador para executar tarefas de administração? Eu certamente espero que não, então algo mais está terrivelmente errado?

Trent
fonte

Respostas:

11

A resposta curta é "sim" para a maioria das atividades que você realizará via STSADM nos bancos de dados SQL.

Para a grande maioria dos comandos STSADM executados diretamente na API do SharePoint (em vez de agendar tarefas para executar uma ação), o contexto de segurança no qual os comandos são executados é seu - o usuário conectado. Como você viu no exemplo que você citou, o contexto da sua conta de usuário é o que será usado para a retirada. Se você não tiver os direitos apropriados no SQL para executar a operação, ela falhará (como você viu).

Isso contrasta com a maioria das atividades que você realiza por meio da interface do usuário (ou seja, Central Admin). No exemplo que você citou, a retirada da solução via Administrador Central resultaria na execução do comando no contexto da conta de serviço do farm, pois essa conta é a identidade do pool de aplicativos do site do Administrador Central. Resultado: a retração seria bem-sucedida, mesmo que você (pessoalmente) não tenha permissões para o banco de dados associado.

Se o seu ambiente estiver configurado de forma que sua conta não tenha acesso em nível de administrador aos bancos de dados no farm do SharePoint, eu recomendaria a realização de tantas atividades quanto possível por meio da interface do usuário para evitar o tipo de problemas de contexto de segurança que você encontra . Você descobrirá que pode fazer a maior parte do que precisa fazer dessa maneira. Uma exceção notável que vem à mente, no entanto, é adicionar uma solução (STSADM -o addolution) ao armazenamento de soluções do farm - não existe contrapartida da interface do usuário ao comando STSADM.

Como alternativa, você poderia fazer algo semelhante ao sugerido pelo MadlyAlive (por exemplo, fazer login com a conta de serviço do farm) ... embora o acesso do administrador local à conta do serviço do farm não seja exigido nem recomendado pela Microsoft. Você também pode ter sua conta com o conjunto mínimo de permissões necessárias dentro do SQL Server para executar suas operações.

Para mais discussão, consulte o artigo da KB da Microsoft em http://support.microsoft.com/kb/896148 .

Recapitulação da regra geral: o STSADM usa o contexto da sua conta, o Central Admin usa o contexto da conta do serviço de farm.

Eu espero que isso ajude!

Sean P. McDonough
fonte
obrigado pela boa visão e informação. Nunca pensei muito sobre o fato de o stsadm ser executado no contexto do usuário.
Aaron Weiker
Também tenho o mesmo problema ao tentar retirar a solução na interface do usuário do Admin Central. Mas essa é realmente uma boa informação que você compartilhou. Iniciarei agora o longo processo burocrático de solicitar o acesso apropriado ao servidor SQL.
Trent
Ainda espero que minha conta obtenha todas essas permissões quando for adicionada ao grupo "Administradores de Farm".
Vitule
Adicionar uma conta ao grupo "Administradores de Farm" no Administrador Central do SharePoint não tem absolutamente nenhum efeito nos direitos dessa conta no SQL Server. Tornar-se administrador de farm concede a você direitos (no Admin Central) para iniciar ações que são executadas em seu nome pela conta de serviço de farm / timer por meio de delegação ... mas não altera nenhuma permissão nos bancos de dados da conta de usuário no SQL . Tornar-se administrador de farm é apenas uma alteração de permissão do SharePoint - não o SQL Server.
Sean P. McDonough
0

Isso pode estar evitando o problema principal, mas ao tentar executar um comando stsadm semelhante

stsadm -o preupgradecheck

Eu estava recebendo acesso negado também. Mas executar o prompt de comando como administrador me permitiu executá-lo.

Jeff Dalley
fonte