You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GridDB中10090 TXN_OTHER_PRIVILEGE_EXISTS错误排查与权限咨询

GridDB 10090 TXN_OTHER_PRIVILEGE_EXISTS 错误排查与解决

问题背景

在使用GridDB时,执行以下创建用户并授权的操作:

-- 创建新用户
CREATE USER test_user WITH PASSWORD 'securepassword';

-- 为用户授予权限
GRANT ALL PRIVILEGES ON test_db TO test_user;

反复触发以下错误:

10090 TXN_OTHER_PRIVILEGE_EXISTS ERROR User/DB administration operation failed. Authority may have been duplicated. Check the user name and DB name.

已尝试操作:检查用户存在性、验证权限分配、撤销重授权限、重启GridDB服务,但问题仍存在。


1. 错误具体含义

10090错误核心是权限重复冲突:你尝试授予的权限(此处为ALL PRIVILEGES)中,已有部分或全部权限已经被分配给test_user对test_db的权限组。GridDB不允许同一用户对同一数据库重复授予相同权限,哪怕是通过不同操作路径分配的。

2. 查看用户现有权限的方法

要避免重复授权,需先查询用户已拥有的权限,执行以下SQL语句:

-- 查询指定用户的所有权限
SELECT * FROM INFORMATION_SCHEMA.USER_PRIVILEGES WHERE GRANTEE = 'test_user';

-- 精准查询用户对指定数据库的权限
SELECT * FROM INFORMATION_SCHEMA.USER_PRIVILEGES WHERE GRANTEE = 'test_user' AND TABLE_SCHEMA = 'test_db';

查询结果会显示该用户已拥有的权限类型(如SELECT、INSERT、ALL等)以及对应数据库,明确哪些权限无需重复授予。

3. GridDB正确管理用户权限的方式

  • 授权前先查权限状态:每次执行GRANT前,先用上述查询语句确认目标权限是否已存在,从根源避免重复操作。
  • 按需授权,避免过度授予:不要直接用ALL PRIVILEGES,仅授予用户实际需要的权限,既减少冲突概率也提升安全性:
    -- 示例:仅授予查询和插入权限
    GRANT SELECT, INSERT ON test_db TO test_user;
    
  • 精准撤销权限:如需调整权限,先撤销对应权限再重新授予,避免权限叠加:
    -- 撤销用户对test_db的所有权限
    REVOKE ALL PRIVILEGES ON test_db FROM test_user;
    -- 重新授予所需权限
    GRANT SELECT, UPDATE ON test_db TO test_user;
    
  • 提前验证用户/数据库合法性:执行操作前确认用户和数据库存在,避免拼写错误导致的异常:
    -- 检查用户是否存在
    SELECT * FROM INFORMATION_SCHEMA.USERS WHERE USER_NAME = 'test_user';
    -- 检查数据库是否存在
    SELECT * FROM INFORMATION_SCHEMA.DATABASES WHERE DATABASE_NAME = 'test_db';
    

内容的提问来源于stack exchange,提问作者Samar Mohamed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 16:25:03