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 / 165344
Accepted
Brad
Brad
Asked: 2017-02-24 10:06:36 +0800 CST2017-02-24 10:06:36 +0800 CST 2017-02-24 10:06:36 +0800 CST

Não é possível implantar o pacote SSIS no SQL Server Data Tools 2015 (o nome do servidor de destino não permite a entrada de senha)

  • 772

Estou extremamente frustrado. Estou usando o SQL Server Data Tools 2015. Tenho um projeto do Integration Services e quero implantar um único pacote dessa solução no SQL Server 2012. Configurei a solução como Deployment Target Server Version para SQL 2012. Clico com o botão direito no pacote e selecione Deploy, no entanto, na parte Select Destination do assistente, ele só me permite selecionar um nome de servidor (e não inserir nenhuma credencial). No entanto, preciso inserir um nome de usuário e senha específicos, pois minha conta de domínio não é um login válido.

Entendo que esse assistente eventualmente executará isdeploymentwizard.exe e também examinei os parâmetros e não vejo uma maneira de inserir nenhuma informação de conexão fora de um nome de servidor.

Como posso implantar este pacote no servidor usando um nome de usuário e senha em vez de uma conta confiável? Sinto que devo estar perdendo algo incrivelmente estúpido, porque não consegui encontrar alguém com um problema semelhante, mesmo depois de pesquisar no Google por uma hora. Aparentemente, todos que estão implantando no SQL Server do SSDT2015 estão usando uma conta confiável.

Editar: Em versões mais antigas do BIDS, você pode abrir o projeto e selecionar Arquivo > Salvar cópia de .dtsx e salvá-lo no servidor SQL e usar as credenciais. No entanto, no SSDT, a opção Salvar cópia de apenas permite que você salve o pacote localmente.

sql-server ssis
  • 3 3 respostas
  • 20992 Views

3 respostas

  • Voted
  1. billinkc
    2017-02-25T10:00:27+08:002017-02-25T10:00:27+08:00

    Você tem muita coisa acontecendo aqui.

    Modelo de implantação de pacote vs projeto

    A partir da versão 2012, os projetos SSIS podem escolher entre um modelo de implantação de pacote e um modelo de implantação de projeto. O Project permite que você crie artefatos de nível de projeto - gerenciadores de conexões compartilhadas, parâmetros de projeto (e pacote). O modelo de implantação padrão para novos projetos é o modelo de implantação do projeto.

    A unidade de código implantável de um modelo de implantação de projeto é o arquivo .ispac. Seus pacotes SSIS + parâmetros de projeto + gerenciadores de conexões compartilhadas + arquivo de manifesto são compactados em um arquivo chamado MyProject.ispac. O arquivo ispac é implantado em um catálogo do SQL Server chamado SSISDB.

    A unidade de código implantável do modelo de implantação de pacote é o próprio pacote SSIS. Você pode implantar o arquivo .dtsx em um sistema de arquivos, no repositório de pacotes SSIS (também apenas no sistema de arquivos) ou em uma instância do SQL Server. No entanto, o pacote SSIS será armazenado no MSDB (sysdtspackages90/sysssispackages)

    A versão 2016 complica a matriz acima, pois agora podemos implantar pacotes .dtsx no SSISDB. Isso é para abordar a história de implantação incremental. Nos bastidores, ele gerará um ispac e é isso que é implantado. Mas isso é apenas para um servidor de 2016 que não ajudará sua história de 2012.

    Versões SSIS

    Os pacotes SSIS têm versões que correspondem à versão do SQL Server e das ferramentas com as quais você está trabalhando (2005/2008/2008 R2/2012/2014/2016/v.Next). Os pacotes são compatíveis apenas* com versões anteriores, portanto, se você cometer o erro de abrir um pacote de 2005 com as ferramentas de 2014 (ou implantar com ele) em uma instância de 2005, adivinhe, você atualizou para a versão atual e implantou em um local que não t falar esse dialeto.

    2016 confunde esse problema porque as ferramentas agora suportam direcionamento (Projeto -> propriedades, Propriedades de configuração -> Geral: TargetServerVersion)

    Implantação

    Ispacs são implantados via isdeploymentwizard.exe ou você pode fazê-lo em TSQL.

    -- You must be in SQLCMD mode
    -- Otherwise, modify the value of $(isPacPath) down below
    :setvar isPacPath "C:\sandbox\SSDTDeploy\TSQLDeploy\bin\Development\TSQLDeploy.ispac"
    
    DECLARE
        @folder_name nvarchar(128) = 'TSQLDeploy'
    ,   @folder_id bigint = NULL
    ,   @project_name nvarchar(128) = 'TSQLDeploy'
    ,   @project_stream varbinary(max)
    ,   @operation_id bigint = NULL;
    
    -- Read the zip (ispac) data in from the source file
    SELECT
        @project_stream = T.stream
    FROM
    (
        SELECT 
            *
        FROM 
            OPENROWSET(BULK N'$(isPacPath)', SINGLE_BLOB ) AS B
    ) AS T (stream);
    
    -- Test for catalog existences
    IF NOT EXISTS
    (
        SELECT
            CF.name
        FROM
            catalog.folders AS CF
        WHERE
            CF.name = @folder_name
    )
    BEGIN
        -- Create the folder for our project
        EXECUTE [catalog].[create_folder] 
            @folder_name
        ,   @folder_id OUTPUT;
    END
    
    -- Actually deploy the project
    EXECUTE [catalog].[deploy_project] 
        @folder_name
    ,   @project_name
    ,   @project_stream
    ,   @operation_id OUTPUT;
    

    Isso soa como o que você quer, porque você pode ser um usuário SQL local, mas se a memória servir, as funções acima fazem essa confusão de representação que dá errado se você não for um usuário do Windows.

    Esta aplicação requer um dos componentes..

    Com 2005/2008/2008 R2 você só poderia obter SSDT, nee BIDS, com a mídia de instalação. Isso significava que você precisava do Developer Edition no mínimo para criar seus pacotes SSIS. A partir de 2012, você pode baixar as ferramentas SSDT diretamente do MS sem ter uma licença para o SQL Server. No entanto, você está licenciado apenas para fins de desenvolvimento. As ferramentas de linha de comando não são classificadas como ferramentas de desenvolvimento, portanto, dtutil ou dtexec falharão em uma verificação de licenciamento e relatarão o acima (ou uma mensagem de erro semelhante).

    A resolução, como você aponta, é instalar o Serviço de Integração na máquina que requer "mais" do que apenas o desenvolvimento de Serviços de Integração. Esteja ciente de que isso conta como uma instalação do SQL Server do ponto de vista do licenciamento, portanto, certifique-se de que a pessoa em sua organização que lida com o licenciamento esteja ciente das máquinas em que você fez isso para não ter uma surpresa desagradável na hora da auditoria.

    • 3
  2. Best Answer
    Brad
    2017-02-25T06:43:39+08:002017-02-25T06:43:39+08:00

    De acordo com este post nos fóruns do MSDN, simplesmente não é possível. Você deve usar a autenticação do Windows para implantar o pacote. No entanto, descobri que, se eu clicar em 'Converter em modelo de implantação de pacote', a função Salvar cópia como me permite salvá-la no SQL Server. No entanto, tentar fazer isso me dá a seguinte mensagem:

    Armazenar ou modificar pacotes no SQL Server requer que o runtime e o banco de dados do SSIS sejam da mesma versão. O armazenamento de pacotes em versões anteriores não é suportado.

    Parece que o SSDT 2015 (embora você possa alterar o Deployment Target Server do SQL 2016 para SQL 2012 ou SQL 2014), não permitirá que você salve o pacote no SQL Server do SQL 2012 ou SQL 2014 sem instalar os tempos de execução do SSIS.

    Um erro semelhante é gerado pelo dtutil , que parece ter as versões 110, 120 e 130 instaladas (nos C:\Program Files (x86)\Microsoft SQL Server\xxx\DTS\Binndiretórios) durante a instalação do SSDT2015.

    C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn>dtutil /?

    Utilitários do pacote Microsoft (R) SQL Server SSIS Versão 11.0.6020.0 para 32 bits Copyright (C) Microsoft Corporation 2012. Todos os direitos reservados.

    Este aplicativo requer que um dos componentes: Integration Services, Business Intelligence Studio, Management Tools - Basic ou Database Engine seja instalado pelo SQL Server 2012 Standard, Enterprise, Developer, Business Intelligence ou Evaluation Edition. Para instalar um componente, execute a Instalação do SQL Server e selecione o nome do componente.

    A instalação do recurso compartilhado do Integration Services da instalação do SQL 2012 não alterou a mensagem de erro ao tentar usar o recurso 'Salvar cópia como' dentro do SSDT, mas me permitiu usar o dtutil para copiar com êxito o pacote para o servidor.

    TLDR;

    • Converta seu projeto do Integration Services para usar o Modelo de Implantação de Pacotes.
    • Certifique-se de que o Recurso Compartilhado do Integration Services esteja instalado localmente para a versão do SQL na qual você está implantando o pacote.
    • Use dtutil para copiar o pacote para o servidor, ou seja C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn>dtutil /FILE "C:\path\to\mypackage.dtsx" /DestServer SERVER\INSTANCE /DestUser MyUserName /DestPassword MyPassword /Encrypt SQL;PackageNameOnServer;2;PackagePassword(você pode usar um nível de criptografia diferente ou em vez de usar /Encrypt use /Copy, veja a documentação do dtutil)
    • 1
  3. GregGalloway
    2017-02-25T17:52:11+08:002017-02-25T17:52:11+08:00

    Se você fechar o Visual Studio, abra-o em um prompt de comando com o comando a seguir, ele solicitará sua senha necessária para se conectar ao outro servidor.

     runas.exe /netonly /user:OTHERDOMAIN\OtherUser "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe"
    

    /netonly diz para usar apenas essas credenciais alternativas ao falar pela rede. Altere o OTHERDOMAIN\OtherUser para corresponder ao nome de usuário necessário para se conectar ao sistema remoto. E a última parte é o caminho para o Visual Studio 2015.

    Feito isso, você poderá implantar sem fornecer credenciais alternativas novamente.

    A propósito, eu recomendo que você instale o BIDS Helper gratuito para aproveitar o recurso Deploy SSIS Packages , que facilita a implantação de pacotes únicos. Você ainda precisa runas.exe embora.

    • 0

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