您好我正在尝试创建一个登录角色(用户),其修改数据库的能力相当低。他们应该能够选择、删除、创建触发器、插入和更新。然后,我想拥有多个作为用户成员的帐户,因此它们具有相同的权限,但我可以为单个用户记录编辑。
我正在使用 pgadmin 进行数据库设计,我的程序使用 QtSQL 访问它。
尝试选择一些数据作为测试时,我收到的错误消息被 Qt 捕获。当我运行与数据库所有者和超级用户相同的代码时,我没有问题。
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;");
错误:关系联系人的权限被拒绝 QPSQL:无法创建查询
到目前为止,我已经创建了角色(用户)。
-- 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';
因为这给了以前的问题。我尝试为数据库添加公共权限,但这也不起作用。
现在我不知道在哪里寻找解决方案。任何帮助深表感谢。谢谢。