连接到系统时,我有一个名为BT_MASTER的用户,并授予BT_MASTER角色MAIN_ADMIN_ROLE:

select * from dba_role_privs where grantee = 'BT_MASTER';

GRANTEE GRANTED_ROLE ADMIN_OPTION DELEGATE_OPTION DEFAULT_ROLE COMMON INHERITED
BT_MASTER MAIN_ADMIN_ROLE NO NO YES NO NO

此角色同样使用SYSTEM TO GRANT,具有创建用户的权限:

select * from role_sys_privs

ROLE PRIVILEGE ADMIN_OPTION COMMON INHERITED
MAIN_ADMIN_ROLE CREATE USER NO NO NO

但是,当try 这样简单的操作时,以BT_MASTER身份连接到数据库:

CREATE USER new_user_example;

我得到了这个错误:

从命令中的第1行开始时出错- 创建用户new_user_Example 错误报告- ORA-01031:权限不足 01031.00000--"特权不足" *原因:试图在没有执行数据库操作的情况下 必要的特权. *操作:咨询您的数据库管理员或指定的安全人员 管理员授予您必要的权限

我使用的是Oracle XE 18c,超薄版本(gvenzl/oracle-xe:18-slm)

有没有人知道这是这个版本的一个限制,或者我做了什么不正确的事情?

推荐答案

通过以系统身份连接并执行以下操作,我设法绕过了这个问题:

向BT_MASTER授予DBA和ADMIN选项;

Sql相关问答推荐

基于列对多行求和的查询

将有界时间周期作为阶跃函数,其中周期开始返回1,周期结束返回0

查询多个表并返回合并在联合列上的所有表中的所有行

每组显示一行(表1中的分组值),表2中的不同列表用逗号分隔

在Postgres中合并相似的表

在查询Oracle SQL中创建替代ID

如何使用SQL生成数据的滚动3天总和

每个分组最多 Select 最后 2 个值并并排显示它们

将 jsonb 数组中的对象取消嵌套到单独的行中

如何修复初学者 SQL INNER JOIN 查询错误

将 json 列键映射到第二个表中的匹配列值

SQL SUM Filter逻辑解释

Oracle 21c 中的递归查询回顾过go 3 周

获取多个开始-结束时间戳集之间经过的时间

计算 ID 满足条件的次数

Clickhouse:左连接表到外部数组

使用ALTER TABLE无法删除列

使用 GROUP BY 时如何创建其他组?

我需要遍历权重值表并确定每个权重是否有效

按 15 分钟递增计数分组,包括 0 计数