【发布时间】:2022-01-31 21:49:44
【问题描述】:
我正在使用 MySQL 和 sequelize 在 Node.js 中开发一个 api。
当我尝试执行特定的更新查询时出现错误:
错误代码:1142。用户拒绝更新命令 'ncuser_2040'@'xxx-xx-xx-xxx' 用于表'shopping_items'
我在同一个 api 上检查了另一个更新状态,它工作正常。
这是声明:
UPDATE my_recipes_db.shopping_items SET picked = true WHERE master_list = true
and ingredientName in (select * FROM (select ingredientName FROM my_recipes_db.shopping_items
WHERE owner_id = ownerId and shopping_list_name = shoppingList) as t);
在我的搜索中,我发现一些更新语句不能用 MySQL 执行,但是这个语句在 MYSQL Workbench 中适用于我的本地主机,但不适用于我使用 Nodechef 托管的远程数据库。
我对此应用也没有任何其他被拒绝的权限。
有什么想法吗?
马尔科姆
更新:
显示授予本地主机
'授予选择、插入、更新、删除、创建、删除、重新加载、关闭、处理、文件、参考、索引、更改、显示数据库、超级、创建临时表、锁定表、执行、复制从属、复制客户端、创建视图, 显示视图, 创建例程, 更改例程, 创建用户, 事件, 触发器, 创建表空间, 创建角色, 将角色放在 *.* 到 root@localhost WITH GRANT 选项'
'GRANT APPLICATION_PASSWORD_ADMIN,AUDIT_ADMIN,BACKUP_ADMIN,BINLOG_ADMIN,BINLOG_ENCRYPTION_ADMIN,CLONE_ADMIN,CONNECTION_ADMIN,ENCRYPTION_KEY_ADMIN,FLUSH_OPTIMIZER_COSTS,FLUSH_STATUS,FLUSH_TABLES,FLUSH_USER_RESOURCES,GROUP_REPLICATION_ADMIN,INNODB_REDO_LOG_ARCHIVE,INNODB_REDO_LOG_ENABLE,PERSIST_RO_VARIABLES_ADMIN,REPLICATION_APPLIER,REPLICATION_SLAVE_ADMIN,RESOURCE_GROUP_ADMIN,RESOURCE_GROUP_USER,ROLE_ADMIN,SERVICE_CONNECTION_ADMIN,SESSION_VARIABLES_ADMIN,SET_USER_ID, SHOW_ROUTINE,SYSTEM_USER,SYSTEM_VARIABLES_ADMIN,TABLE_ENCRYPTION_ADMIN,XA_RECOVER_ADMIN ON . TO root@localhost WITH GRANT OPTION'
'''@''到'root'@'localhost'上的GRANT PROXY WITH GRANT OPTION'
版本:'8.0.25'
远程:
'GRANT USAGE ON . TO 'ncuser_2040'@'%''
将my-recipes.* 上的所有权限授予'ncuser_2040'@'%'
版本:'5.7.18-log'
【问题讨论】:
-
您能分享一下
SHOW GRANTS在您的本地数据库和远程托管数据库中为您的用户显示的内容吗?还有SELECT VERSION()。 -
我已经用你想要的数据进行了更新。
标签: mysql node.js sequelize.js