Adicionar usuário e promover privilégio de administrador
Adicionar usuário no ckan
Para adicionar um usuário no Ckan e atribuir o papel de administrador, deve-se:
1 - Identificar a VM do Ckan no Rancher
- Acessar https://rancher2.dds.ufvjm.edu.br/.
- Selecionar o ambiente noc-apps-prod onde está localizada a stack Ckan.
- Clicar no nome da stack Ckan.
- Localizar o serviço do Ckan (ckan-db)
-
Clicar no nome do serviço
- Clicar na aba Containers
- Identificar em qual VM o container está rodando (apps-prod3).
Após a identificação da VM no Rancher, devemos abrir um terminal para conectar e acessar o container do banco.
2 - Acessar a VM e localizar o container do Banco de Dados
Conecte-se via SSH à VM apps-prod3
O comando SSH abre um terminal seguro na máquina virtual apps-prod3.
Em seguida, liste os containers Docker em execução na VM:
O comando docker ps lista todos os containers ativos do servidor, e | grep ckan filtra a saída para exibir apenas os containers relacionados à stack ckan.
Localize e anote o nome ou ID do container de banco de dados (r-ckan-ckan-db-1-dbfa5298)
3 - Entrar no container de banco do Ckan
Conecte-se ao banco de dados executando o seguinte comando:
O comando psql -U ckan -d ckan irá abrir o terminal do banco PostgreSQL conectando-se com o usuário ckan no banco ckan.
No prompt do PostgreSQL (ckan=#) consulte a lista de usuários cadastrados como administrador.
O comando select name, apikey from "user" where sysadmin=true; retorna o nome e chave de API de todos os usuários cadastrados na tabela "user" que possuem privilégios de administrador do sistema (sysadmin=true).
Na lista de resultados retornados, copie uma das chaves que estão ativas (ex.: a chave do usuário default).
Após copiar a chave, abra outro terminal (sem estar logado em qualquer máquina) para criar um novo usuário.
4 - Criar novo usuário via API REST do Ckan
Para criar um usuário novo, abra outro terminal (fora do servidor/VM) e execute a requisição HTTP para a API do Ckan, como se segue.
Exemplo para copiar e colar (não esqueça de alterar os dados que estão relacionados ao usuário que se pretende criar, tais como nome, e-mail, senha temporária, etc)
curl -X POST \
https://dados.ufvjm.edu.br/api/3/action/user_create \
-H "Authorization: 803f7db2-f046-4e90-9851-f8d4570793ce" \
-H "Content-Type: application/json" \
-d '{
"name":"dsi",
"email":"sistemas.protic@ufvjm.edu.br",
"password":"Senhadsi*temp"
}'
Explicando cada parâmetro usado:
curl -X POST: envia uma requisição HTTP do tipo POST para o endpoint /api/3/action/user_create do Ckan.
-H "Content-Type: application/json": Informa a API do CKAN que os dados enviados no corpo da requisição estão no formato JSON.
-d '{...}': envia o JSON contendo o nome de usuário (name), email (email) e senha temporária (password). O usuário deve alterar a senha no primeiro acesso.
Usuário criado com sucesso!
Para conferir, podemos listar os usuários cadastrados no banco a partir da consulta:
select name, email, sysadmin, state from "user" order by name;
Essa consulta retorna o nome, email e se o usuário é administrador (t) ou não (f).
t = true;
f = false;
Pode-se observar que o usuário dsi foi criado e que não possui privilégio de administrador ainda (sysadmin = f).
Promover usuário a Administrador
Caso o novo usuário precise de acesso de administrador, devemos:
- Se a sessão do PostgreSQL no container da VM estiver aberta no terminal, vá para ela. Caso contrário volte ao passo 1.
- Busque pelo usuário que deseja promover a administrador, usando o comando a seguir:

-
Altere a coluna sysadmin para true (verdadeiro) no registro do usuário especificado e confirme a transação no banco com o COMMIT.
- Consulte novamente o registro para confirmar que o campo sysadmin agora está como t (true).

Pronto. Usuário dsi promovido a administrador do sistema.







