Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Obtendo permissão de execução para xp_cmdshell


Para usuários que não são membros da função sysadmin na instância do SQL Server, você precisa executar as seguintes ações para conceder acesso ao procedimento armazenado estendido xp_cmdshell. Além disso, se você esqueceu uma das etapas, listei o erro que será lançado.

  1. Ative o procedimento xp_cmdshell

    Msg 15281, Level 16, State 1, Procedure xp_cmdshell, Line 1SQL Server bloqueou o acesso ao procedimento 'sys.xp_cmdshell' do componente 'xp_cmdshell' porque este componente está desativado como parte da configuração de segurança para este servidor. Um administrador do sistema pode habilitar o uso de 'xp_cmdshell' usando sp_configure. Para obter mais informações sobre como habilitar 'xp_cmdshell', consulte "Configuração da área de superfície" nos Manuais Online do SQL Server.*

  2. Crie um login para o usuário não administrador de sistema que tenha acesso público ao banco de dados mestre

    Msg 229, Level 14, State 5, Procedure xp_cmdshell, Line 1A permissão EXECUTE foi negada no objeto 'xp_cmdshell', banco de dados 'mssqlsystemresource', esquema 'sys'.*

  3. Conceder permissão EXEC no procedimento armazenado xp_cmdshell

    Msg 229, Level 14, State 5, Procedure xp_cmdshell, Line 1A permissão EXECUTE foi negada no objeto 'xp_cmdshell', banco de dados 'mssqlsystemresource', esquema 'sys'.*

  4. Crie uma conta proxy na qual o xp_cmdshell será executado usando sp_xp_cmdshell_proxy_account

    Msg 15153, Level 16, State 1, Procedure xp_cmdshell, Line 1As informações da conta proxy xp_cmdshell não podem ser recuperadas ou são inválidas. Verifique se a credencial '##xp_cmdshell_proxy_account##' existe e contém informações válidas.*

Parece pelo seu erro que a etapa 2 ou 3 foi perdida. Não estou familiarizado com clusters para saber se há algo específico nessa configuração.