Operando o Lacuna PSC sem ser owner do banco de dados
O Lacuna PSC pode operar de duas maneiras em relação ao acesso do banco de dados:
- Sendo owner do banco de dados e atualizar automaticamente o modelo do banco de dados após uma atualização quando necessário (padrão)
- Ter privilégios apenas de leitura e escrita no banco de dados, exigindo que o modelo do banco de dados seja atualizado pelo administrador usando uma ferramenta de linha de comando
Operar com o usuário da aplicação sendo owner do aplicativo é mais simples, por isso essa é a opção sugerida na instalação padrão. Entretanto, conceder somente privilégios de leitura e escrita garante ao administrador maior controle sobre o banco de dados. Se você preferir operar o Lacuna PSC sem privilégios de owner para o usuário da aplicação, siga os passos descritos nesse artigo.
Criando credenciais de leitura e escrita
Crie o banco de dados normalmente conforme descrito na preparação do banco de dados.
Em seguida, ao invés de criar um usuário chamado PscAdm e associá-lo ao papel db_owner
, crie um usuário limitado chamado PscApp
e associe-o apenas aos papeis db_datareader
e db_datawriter
:
USE master;
CREATE LOGIN PscApp WITH PASSWORD = 'XXXXXX';
GO
USE Psc;
CREATE USER PscApp FOR LOGIN PscApp;
EXEC sp_addrolemember 'db_datareader', 'PscApp';
EXEC sp_addrolemember 'db_datawriter', 'PscApp';
GO
A connection string seria, então:
Data Source=.;Initial Catalog=Psc;User ID=PscApp;Password=XXXXX
Note
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.
Desabilitando a atualização automática do banco de dados
Operar com o Lacuna PSC sem privilégios de owner sobre o banco de dados significa que a aplicação não será capaz de atualizar o banco por conta própria. Por isso, é preciso desabilitar a atualização automática do banco de dados de modo a evitar erros.
Edite o arquivo JSON de configuração do Lacuna PSC (a localização do arquivo depende da plataforma onde a sua instância está instalada) e adicione:
- Seção General
- AutoUpdateDatabase: atribua o valor
false
- AutoUpdateDatabase: atribua o valor