Olá, estou tentando criar uma função de login (usuário) com uma capacidade mínima de modificar o banco de dados. Eles devem ser capazes de selecionar, excluir, criar gatilhos, inserir e atualizar. Eu gostaria de ter várias contas que são membros do usuário para que tenham as mesmas permissões, mas posso registrar edições para usuários individuais.
Estou usando o pgadmin para o design do meu banco de dados e meu programa acessa isso com o QtSQL.
A mensagem de erro que recebo é detectada pelo Qt ao tentar selecionar alguns dados como teste. Quando executo o mesmo código que o proprietário do banco de dados e o superusuário, não tenho problemas.
bool run_query(const QString & q){
QSqlDatabase db = QSqlDatabase::database("default");
QSqlQuery query(db);
query.exec(q);
if (!query.isActive()){
QMessageBox::warning(0, QObject::tr("Database Error"),
query.lastError().text());
return false;
}
while (query.next()){
QString title = query.value(0).toString();
std::cerr << qPrintable(title) << std::endl;
}
return true;
}
run_query("Select forename from contacts;");
ERRO: permissão negada para contatos de relação QPSQL: Não foi possível criar a consulta
Até agora eu criei a função (usuário).
-- Role: user
-- DROP ROLE "user";
CREATE ROLE "user" LOGIN
ENCRYPTED PASSWORD 'md54d45974e13472b5a0be3533de4666414'
NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
COMMENT ON ROLE "user" IS 'Low level user';
Como isso deu os problemas anteriores. Tentei adicionar permissões de público para o banco de dados, mas também não funcionou.
Agora não tenho ideia de onde procurar uma solução. Qualquer ajuda é muito apreciada. Obrigado.