---
title: "Preparando o banco de dados para instalação do GrantID"
description: "Como preparar o banco de dados SQL Server ou PostgreSQL e obter a connection string para instalar o GrantID on-premises, incluindo a collation obrigatória."
canonical: "https://docs.lacunasoftware.com/articles/grant-id/on-premises/prepare-database"
locale: "pt-BR"
product: "GrantID"
last_updated: "2026-10-12"
---

# Preparando o banco de dados para instalação do GrantID

Para instalar uma [instância *on premises*](https://docs.lacunasoftware.com/articles/grant-id/on-premises) do [GrantID](https://docs.lacunasoftware.com/articles/grant-id), você vai precisar de uma *connection string* para um dos seguintes SGBDs:

* [SQL Server](https://docs.lacunasoftware.com/articles/grant-id/on-premises/prepare-database#sql-server)
* [PostgreSQL](https://docs.lacunasoftware.com/articles/grant-id/on-premises/prepare-database#postgres)

## SQL Server

Para usar SQL Server, você vai precisar de um banco de dados com:

* Collation: `Latin1_General_100_CI_AI`
* Credenciais correspondentes a um usuário com papel `db_owner`

> **Observação**
>
> Se você preferir operar o GrantID sem conceder `db_owner` ao usuário da aplicação,  contate-nos

> **Aviso**
>
> A *collation* do banco de dados **PRECISA SER** `Latin1_General_100_CI_AI`. Criar o banco de dados com uma *collation* diferente provavelmente fará com que a instalação falhe!

Se você precisar de ajuda para preparar o banco de dados, siga os passos neste artigo.

> **Observação**
>
> Você não precisa seguir estas instruções especifícas. Se você desejar preparar o banco de dados,
> por exemplo usando recursos avançados como *log shipping* ou *mirroring*, você pode fazê-lo, desde que a *collation* e as permissões sejam observadas.

Para criar o banco de dados, use a seguinte consulta T-SQL (opcionalmente alterando o nome do banco de dados):

```sql
USE Master;
CREATE DATABASE GrantID COLLATE Latin1_General_100_CI_AI;
GO
```

Crie um usuário e associe-o ao papel `db_owner`:

```sql
USE master;
CREATE LOGIN GrantIDAdm WITH PASSWORD = 'XXXXX';
GO

USE GrantID;
CREATE USER GrantIDAdm FOR LOGIN GrantIDAdm;
EXEC sp_addrolemember 'db_owner', 'GrantIDAdm';
GO
```

A *connection string* seria, então:

```text
Data Source=.;Initial Catalog=GrantID;User ID=GrantIDAdm;Password=XXXXX
```

> **Observação**
>
> Essa *connection string* presume que o servidor do banco de dados esteja instalado no mesmo servidor que o aplicativo da web. Se este não for o caso,
> o valor após `Data Source=` deve ser alterado.

## PostgreSQL

A partir da [versão 4.2.0](https://docs.lacunasoftware.com/articles/grant-id/changelog#v4-2-0) do GrantID, também é suportado o uso de PostgreSQL. Qualquer uma das versões do PostgreSQL dentro do período
de suporte oficial também é suportada ([o que, no momento, significa versão 11 ou superior](https://www.postgresql.org/support/versioning/)).

Comece criando o banco de dados e um usuário para a aplicação (altere os nomes caso deseje):

```text
postgres=# CREATE DATABASE grantid;
CREATE DATABASE
postgres=# CREATE USER grantid WITH PASSWORD 'XXXXX';
CREATE ROLE
```

Em seguida, conecte-se ao banco de dados recém-criado e configure as permissões ao *schema* `public`:

```text
postgres=# \connect grantid
You are now connected to database "grantid" as user "postgres".
grantid=# REVOKE ALL ON SCHEMA public FROM PUBLIC;
REVOKE
grantid=# GRANT ALL ON SCHEMA public TO grantid;
GRANT
grantid=# CREATE SCHEMA hangfire;
CREATE
grantid=# GRANT ALL ON SCHEMA hangfire TO grantid;
GRANT
```

> **Observação**
>
> Por ora, é necessário utilizar um usuário com acesso pleno. Contate-nos se você precisar executar o GrantID usando um usuário com acesso limitado.

A *connection string* seria, então, a seguinte (assumindo que você não alterou os nomes do banco de dados e do usuário):

```text
Host=localhost;Database=grantid;Username=grantid;Password=XXXXX
```

> **Observação**
>
> Essa *connection string* parte do pressuposto que o SGBD está instalado no mesmo servidor que a aplicação web. Se esso não for o caso, o valor
> depois de `Host=` acima teria que ser alterado.
