【发布时间】:2022-12-07 04:47:02
【问题描述】:
我是 PostgreSQL 的新手,正在 cPanel 上测试 NodeJS/React 应用程序。
我能够从 PostgresSQL 数据库读取数据,但是当我尝试向其中插入数据时,出现错误“序列 posts_post_id_seq 的权限被拒绝”。 posts是表名,post_id是PK。
在节点中,我像这样建立与数据库的连接:
postgresql://${process.env.DB_USER_PROD}:${process.env.DB_PASSWORD_PROD}@${process.env.DB_HOST_PROD}/${process.env.DB_NAME_PROD}
我检查了上面字符串中的每个值都是正确的;如上所述,我可以使用 SELECT 从 Node 获取数据。 DB_USER_PROD值为柠檬管理员在下面的 phpPgAdmin 屏幕截图中,我看到该用户拥有所有权限
用于插入的服务器代码是这样的:
app.post('/api/postsdb', async (req, res) => {
const {title, content, author} = req.body
try {
const postQuery = 'INSERT INTO posts(title, author, content) VALUES($1, $2, $3)'
await pool.query(postQuery, [title, author, content])
return res.send({status: 'ok', msg:'alrigth'})
} catch (error) {
return res.send({status: 'failed', msg: error.message})
}
})
这在本地与 Postbird 一起工作。
由于我是 PG 的新手,所以很可能我遗漏了一些东西
我只能访问 phpPgAdmin。我没有 SSH 访问权限。
我如何授予该用户不仅可以选择,还可以插入、更新和删除的权限?我必须从 phpPgAdmin 做,拜托。
谢谢
【问题讨论】:
-
看来你做在那个表上有
INSERT权限,你没有的是在posts_post_id_seq上的theUSAGEorUPDATEpermissions序列. -
感谢您的意见。我该如何解决?我读了你链接的文章,但我不是很清楚。谢谢
标签: postgresql