AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 173803
Accepted
SQLPRODDBA
SQLPRODDBA
Asked: 2017-05-18 03:17:35 +0800 CST2017-05-18 03:17:35 +0800 CST 2017-05-18 03:17:35 +0800 CST

Pergunta de trabalho do agente do SQL Server

  • 772

Cenário:

Estou tentando entender uma situação estranha. Eu tenho um SQL Server 2012 com o mecanismo de banco de dados e o agente do SQL Server configurados usando a mesma conta de domínio. Essa conta de domínio não é adicionada aos logons do SQL Server. Verificado usando xp_logininfo 'Domain account', 'all'e não obteve nenhuma saída. Eu tenho um trabalho de servidor SQL que atualiza uma tabela em um banco de dados. Esse trabalho está funcionando bem. Até agora, eu tinha a impressão de que a conta do agente do SQL Server deve ser definida no logon do SQL Server para executar o trabalho. No entanto, nesse caso, o trabalho estava funcionando bem, embora o logon do agente do SQL Server não esteja definido nos logons do SQL Server. Então, tentando entender como isso é possível. Além disso, como o trabalho atualiza uma tabela, não sabe qual usuário/login ele usa para atualizar a tabela. Como teste, alterei o proprietário do trabalho para login 'sa' e não 'sa' em ambos os casos em que o trabalho está funcionando bem.

Então minhas perguntas são:

  1. É obrigatório ter uma conta de agente do SQL Server definida nos logons do SQL Server para executar o trabalho? Se sim, como é que meu trabalho de atualização está sendo executado, mesmo que não haja logon presente para a conta do agente do SQL Server nos logons do SQL Server. Se não, como funciona internamente? Como qual conta ele usa para iniciar o trabalho SQL.

  2. Qual usuário/login meu trabalho de atualização está usando para atualizar a tabela?

sql-server sql-server-2012
  • 2 2 respostas
  • 2224 Views

2 respostas

  • Voted
  1. Best Answer
    SqlWorldWide
    2017-05-18T04:10:37+08:002017-05-18T04:10:37+08:00

    1. É obrigatório ter uma conta de agente do SQL Server definida nos logons do SQL Server para executar o trabalho?

    Veja isso e isso .

    O SQL Server Agent é executado como um serviço do Windows chamado NT SERVICE\SQLSERVERAGENT. O logon NT SERVICE\SQLSERVERAGENT é como o processo do Windows que é o SQL Server Agent se conecta ao Mecanismo de Banco de Dados para ler o banco de dados msdb e descobrir o que ele deve fazer; e então faça. Esses dois logons são membros da função de servidor fixa sysadmin, portanto, podem fazer qualquer coisa no Mecanismo de Banco de Dados. E eles precisam ficar assim.

    Quanto à conta que você usou para executar os serviços, isso é complicado e mudou em cada versão do SQL Server. A resposta curta é que a conta que você especificar será usada quando um processo tentar acessar fora do ambiente Windows atual. Mas dentro do computador, há uma mistura de autorização concedida ao usuário do domínio, ao serviço e ao grupo do Windows SQLServerMSSQLUser$computername$MSSQLSERVER.

    Existem permissões no sistema operacional que uma conta de agente obtém por padrão. Detalhes aqui .

    De acordo com os livros online:

    A conta na qual o serviço SQL Server Agent é executado deve ser membro das seguintes funções do SQL Server:

    A conta deve ser membro da função de servidor fixa sysadmin.

    Para usar o processamento de trabalho multiservidor, a conta deve ser membro da função de banco de dados msdb TargetServersRole no servidor mestre.

    Em todas as versões do Windows, permissão para fazer logon como um serviço (SeServiceLogonRight)

    Mas não deve ser um membro do grupo de administração local.

    Recomendamos escolher uma conta de usuário do Windows que não seja membro do grupo Administradores do Windows. No entanto, há limitações para usar a administração multiservidor quando a conta de serviço do SQL Server Agent não é membro do grupo Administradores local

    2. Qual usuário/login meu trabalho de atualização está usando para atualizar a tabela?

    Referência: https://www.simple-talk.com/sql/database-administration/setting-up-your-sql-server-agent-correctly/

    A propriedade do trabalho é um conceito importante no SQL Server Agent. O SQL Server Agent define o contexto de segurança para a execução do trabalho com base na função do usuário que possui o trabalho. Por padrão, o SQL Server Agent executa etapas de trabalho na conta de serviço do SQL Server Agent independentemente da propriedade do trabalho ou no contexto de uma conta proxy.

    A exceção a essa regra são as etapas de trabalho T-SQL, que são executadas no contexto de segurança do proprietário do trabalho. Se o proprietário do trabalho for membro da função sysadmin, a etapa do trabalho será executada no contexto da conta de serviço do SQL Server Agent.

    • 3
  2. Md Haidar Ali Khan
    2017-05-18T04:04:20+08:002017-05-18T04:04:20+08:00

    É obrigatório ter uma conta de agente do SQL Server definida nos logons do SQL Server para executar o trabalho?

    A conta de inicialização do serviço define a conta do Microsoft Windows na qual o SQL Server Agent é executado e suas permissões de rede. O SQL Server Agent é executado como uma conta de usuário especificada. Você seleciona uma conta para o serviço SQL Server Agent usando o SQL Server Configuration Manager, onde você pode escolher entre as seguintes opções:

    Conta incorporada. Você pode escolher em uma lista das seguintes contas de serviço internas do Windows: Conta do sistema local. O nome desta conta é NT AUTHORITY\System. É uma conta poderosa que tem acesso irrestrito a todos os recursos do sistema local. Ele é membro do grupo Administradores do Windows no computador local e, portanto, é membro da função de servidor fixa sysadmin do SQL Server.

    Esta conta Permite especificar a conta de domínio do Windows na qual o serviço SQL Server Agent é executado. Recomendamos escolher uma conta de usuário do Windows que não seja membro do grupo Administradores do Windows. No entanto, há limitações para usar a administração multiservidor quando a conta de serviço do SQL Server Agent não for membro do grupo Administradores local.

    Nota: - A opção de conta do sistema local é fornecida apenas para compatibilidade com versões anteriores. A conta do sistema local tem permissões que o SQL Server Agent não requer. Evite executar o SQL Server Agent como a conta do sistema local. Para maior segurança, use uma conta de domínio do Windows com as permissões listadas na seção a seguir, "Permissões de conta de domínio do Windows".

    Qual usuário/login meu trabalho de atualização está usando para atualizar a tabela?

    Conecte a instância do SQL Server usando o estúdio de gerenciamento Clique com o botão direito do mouse na instância e selecione

    “Reports”—“Standard Reports”—“Schema Changes History”
    

    Obtemos um relatório de alterações de esquema para todos os bancos de dados dos quais podemos obter a conta de usuário que foi usada para excluir/descartar o banco de dados.

    Se você quiser saber mais sobre as informações da tabela sobre exclusão/atualização, então não há documentação fn_dump_dblog , você pode conferir aqui .

    Para mais informações aqui e aqui

    • -1

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve