# 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

1. Acessar [https://rancher2.dds.ufvjm.edu.br/](https://rancher2.dds.ufvjm.edu.br/).
2. Selecionar o ambiente **noc-apps-prod** onde está localizada a *stack* Ckan.
3. Clicar no nome da *stack* **Ckan**.
4. Localizar o serviço do Ckan (**ckan-db**)
5. Clicar no nome do serviço
6. Clicar na aba Containers
7. 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

[![Captura de tela de 2026-09-30 12-19-46.png](https://documentacao.ufvjm.edu.br/uploads/images/gallery/2026-09/scaled-1680-/oCsqOIXkvZg6ZAT0-captura-de-tela-de-2026-09-30-12-19-46.png)](https://documentacao.ufvjm.edu.br/uploads/images/gallery/2026-09/oCsqOIXkvZg6ZAT0-captura-de-tela-de-2026-09-30-12-19-46.png)

O comando SSH abre um terminal seguro na máquina virtual **apps-prod3**.

Em seguida, liste os *containers* Docker em execução na VM:

[![Captura de tela de 2026-10-01 11-28-36.png](https://documentacao.ufvjm.edu.br/uploads/images/gallery/2026-10/scaled-1680-/QgJi3wmkujI4gNus-captura-de-tela-de-2026-10-01-11-28-36.png)](https://documentacao.ufvjm.edu.br/uploads/images/gallery/2026-10/QgJi3wmkujI4gNus-captura-de-tela-de-2026-10-01-11-28-36.png)

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.

<p class="callout info">Localize e anote o nome ou ID do container de banco de dados (**r-ckan-ckan-db-1-dbfa5298**)</p>

#### 3 - Entrar no *container* de banco do Ckan

Conecte-se ao banco de dados executando o seguinte comando:

[![Captura de tela de 2026-10-01 11-35-27.png](https://documentacao.ufvjm.edu.br/uploads/images/gallery/2026-10/scaled-1680-/sFFJZJgWEpGmfnhq-captura-de-tela-de-2026-10-01-11-35-27.png)](https://documentacao.ufvjm.edu.br/uploads/images/gallery/2026-10/sFFJZJgWEpGmfnhq-captura-de-tela-de-2026-10-01-11-35-27.png)

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.

[![Captura de tela de 2026-10-01 11-41-47.png](https://documentacao.ufvjm.edu.br/uploads/images/gallery/2026-10/scaled-1680-/blqNc05qr5PxshuM-captura-de-tela-de-2026-10-01-11-41-47.png)](https://documentacao.ufvjm.edu.br/uploads/images/gallery/2026-10/blqNc05qr5PxshuM-captura-de-tela-de-2026-10-01-11-41-47.png)

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.

[![Captura de tela de 2026-10-01 11-50-23.png](https://documentacao.ufvjm.edu.br/uploads/images/gallery/2026-10/scaled-1680-/5KLg7eDEc9m9OxHm-captura-de-tela-de-2026-10-01-11-50-23.png)](https://documentacao.ufvjm.edu.br/uploads/images/gallery/2026-10/5KLg7eDEc9m9OxHm-captura-de-tela-de-2026-10-01-11-50-23.png)

Exemplo para copiar e colar (<span style="color: rgb(224, 62, 45);">**não esqueça de alterar os dados**</span> que estão relacionados ao usuário que se pretende criar, tais como nome, e-mail, senha temporária, etc)

```bash
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 "Authorization: ...":** passa o *token* de autenticação (a *apikey* admin obtida no passo anterior) para autorizar a criação do usuário.

**-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.

[![Captura de tela de 2026-10-01 12-08-47.png](https://documentacao.ufvjm.edu.br/uploads/images/gallery/2026-10/scaled-1680-/AxQyIeFBU6A2xMzj-captura-de-tela-de-2026-10-01-12-08-47.png)](https://documentacao.ufvjm.edu.br/uploads/images/gallery/2026-10/AxQyIeFBU6A2xMzj-captura-de-tela-de-2026-10-01-12-08-47.png)

<p class="callout success">Usuário criado com sucesso!</p>

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;

[![Captura de tela de 2026-10-01 12-11-35.png](https://documentacao.ufvjm.edu.br/uploads/images/gallery/2026-10/scaled-1680-/tdhygDi7AZz4JdvL-captura-de-tela-de-2026-10-01-12-11-35.png)](https://documentacao.ufvjm.edu.br/uploads/images/gallery/2026-10/tdhygDi7AZz4JdvL-captura-de-tela-de-2026-10-01-12-11-35.png)

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:

1. Se a sessão do PostgreSQL no *container* da VM estiver aberta no terminal, vá para ela. Caso contrário volte ao passo 1.
2. Busque pelo usuário que deseja promover a administrador, usando o comando a seguir:[![Captura de tela de 2026-10-01 12-24-04.png](https://documentacao.ufvjm.edu.br/uploads/images/gallery/2026-10/scaled-1680-/EbHYWYiwEdKabj8G-captura-de-tela-de-2026-10-01-12-24-04.png)](https://documentacao.ufvjm.edu.br/uploads/images/gallery/2026-10/EbHYWYiwEdKabj8G-captura-de-tela-de-2026-10-01-12-24-04.png)
3. Altere a coluna *sysadmin* para *true* (verdadeiro) no registro do usuário especificado e confirme a transação no banco com o COMMIT.
    
    [![Captura de tela de 2026-10-01 12-27-38.png](https://documentacao.ufvjm.edu.br/uploads/images/gallery/2026-10/scaled-1680-/UoIIpxpNVMlf2p1N-captura-de-tela-de-2026-10-01-12-27-38.png)](https://documentacao.ufvjm.edu.br/uploads/images/gallery/2026-10/UoIIpxpNVMlf2p1N-captura-de-tela-de-2026-10-01-12-27-38.png)
4. Consulte novamente o registro para confirmar que o campo *sysadmin* agora está como t (true). [![Captura de tela de 2026-10-01 12-27-53.png](https://documentacao.ufvjm.edu.br/uploads/images/gallery/2026-10/scaled-1680-/NIBLffYIcvqcrWmZ-captura-de-tela-de-2026-10-01-12-27-53.png)](https://documentacao.ufvjm.edu.br/uploads/images/gallery/2026-10/NIBLffYIcvqcrWmZ-captura-de-tela-de-2026-10-01-12-27-53.png)

<p class="callout success">Pronto. Usuário **dsi** promovido a administrador do sistema.</p>