Resumo das etapas:
- Copie o arquivo tnsnames.ora para um local ao qual o usuário do tableau tenha acesso
- Defina as permissões no arquivo.
- Atualize a variável TNS_ADMIN do ambiente, se necessário, para apontar para o diretório da etapa (1).
Etapa 1: Copiar o arquivo tnsnames.ora para um diretório que o usuário sem privilégio (tableau) possa acessar
Para versões 2019.3.x e posteriores:
Copie o arquivo tnsnames.ora file para o diretório /etc.
Para versões 2019.2.x e anteriores:
Como padrão, o usuário não privilegiado é chamado de 'tableau'. Todos os processos do Tableau Server são executados com essa conta e devem poder localizar o arquivo tnsnames.ora para usá-lo.
Se você já tiver o conector Oracle instalado, recomendamos que copie o arquivo ao diretório /opt/tableau/tableau_driver/oracle.
Você pode confirmar que o diretório está acessível pelo usuário usando 'su' para mudar para a conta e para o diretório. Por exemplo:
sudo su tableau
cd /opt/tableau/tableau_driver/oracle
Se essas etapas resultarem em um erro de 'permissão negada', você precisará atualizar as permissões no diretório sendo usado.
Etapa 2: Definir permissões para o arquivo tnsnames.ora.
2019.2.x e versões anteriores, siga as etapas abaixo:
- Navegue até o caminho do arquivo em que o arquivo tnsnames.ora está localizado.
- Conceda permissões ao arquivo executando o comando: chmod 666 tnsnames.ora
- Verifique as permissões do arquivo com o seguinte comando: ls -l
Obs.: o caminho do ambiente
não deve ter uma barra final. Se o formato do caminho estiver incorreto, os usuários poderão encontrar um erro ORA-12154.
2019.3 e versões posteriores:Coloque o arquivo tsnames.ora no diretório
/etc na máquina Linux. Nenhuma variável de ambiente é necessária.
2020.2 e posterior:Crie um arquivo /var/opt/tableau/tableau_server/data/tabsvc/vizqlserver/Datasources/oracle.properties com o texto abaixo:
Exemplo:
oracle.net.tns_admin=/etcSe necessário, altere
/etc para apontar para o caminho do arquivo tnsnames.ora no sistema de arquivos no seu servidor.
Mais informações sobre arquivos de propriedades JDBC podem ser encontradas aqui:
https://kb.tableau.com/articles/howto/Customizing-JDBC-Connections?lang=pt-br
Etapa 3: Definir a variável de ambiente TNS_ADMIN para apontar para o diretório da etapa (1)
Para as versões 2019.3.x e posteriores: você pode pular esta etapa; nenhuma variável de ambiente é necessária.
Para versões 2019.2.x e anteriores:
- Em um editor de texto, abra o arquivo que corresponde à sua versão do Tableau Server:
- Tabelau Server 2018.1.x - 2019.2 -- /var/opt/tableau/tableau_server/.local/share/systemd/user/tabsvc_0.service
- Adicione a seguinte linha, em que "/path/to/file-folder" é o diretório para o qual você copiou tnsnames.ora na etapa 1:
- Environment=TNS_ADMIN=/path/to/file-folder
- Salve as alterações feitas no arquivo.
Obs.: o caminho do ambiente não tem uma barra à direita. Se o formato do caminho estiver incorreto, os usuários poderão encontrar um erro ORA-12154.
CLIQUE PARA EXPANDIR A SOLUÇÃO
Todos os ambientes
Etapas opcionais
Localização de arquivos tnsnames.ora
Se o cliente Oracle estiver instalado no seu servidor, o arquivo tnsnames.ora estará localizado no seguinte diretório: $ORACLE_HOME/network/admin.
Você pode verificar se este arquivo existe com os seguintes comandos:
echo $ORACLE_HOME
imprimirá o caminho do arquivo.
sudo find / -iname tnsnames.ora
listará os locais de qualquer arquivo tnsnames.ora no seu sistema de arquivos.
Obs.: não é necessário ter o cliente Oracle instalado para usar tnsnames.ora com o Tableau Server. Esta etapa é simplesmente para ajudá-lo a trabalhar com qualquer instalação existente.
Criação de novo arquivo tnsnames.ora do início
Se nenhum arquivo tnsnames.ora estiver presente neste computador e você não tiver um para copiar de uma estação de trabalho cliente, poderá criá-lo usando um editor de texto. Lembre-se das seguintes restrições:
Abaixo está um possível modelo de uma entrada. Os elementos entre chaves devem ser substituídos por valores obtidos junto ao administrador de banco de dados.
Obs.: embora um arquivo TNSNames.ora em um computador Windows ou Mac possa não exigir a entrada ADDRESS_LIST, o arquivo tnsnames.ora em um computador Linux exige essa variável.
[net_service_name]=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=[protocol_address_information])
)
(CONNECT_DATA=
(SERVICE_NAME=[service_name])
)
)
Por exemplo:
Production =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = prod.corp.com)(PORT = 1521)
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)