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

Oracle 19c如何创建无ALTER TABLE权限的用户及权限异常排查

问题背景

需要在Oracle 19.14企业版中创建不具备现有表修改权限的数据库用户,但测试时发现即便仅给用户授予CREATE SESSION权限,用户仍然可以修改已有表,测试过程如下:

初始用户创建与权限验证

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.14.0.0.0

SQL> CREATE USER kirk IDENTIFIED BY hallo;

User created.

SQL>  grant create session to kirk;

Grant succeeded.

SQL> conn kirk/hallo
Connected.
SQL>  create table test (id int);
 create table test (id int)
*
ERROR at line 1:
ORA-01031: insufficient privileges

上述结果符合预期,kirk用户无创建表权限。随后切换到sysdba身份在kirk所属Schema下创建测试表:

SQL> conn / as sysdba
Connected.
SQL> create table kirk.test (id int);

Table created.

再次切换到kirk用户尝试修改该测试表:

SQL> conn kirk/hallo
Connected.
SQL> desc test
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER(38)

SQL> alter table test add name char(50);

Table altered.

SQL> desc test
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER(38)
 NAME                                               CHAR(50)

SQL>
问题解答

为什么仅授予CREATE SESSION的kirk用户可以修改该表

Oracle中用户和Schema是一一对应的强绑定关系:每个用户对应一个同名Schema,Schema是该用户名下所有对象的集合,用户作为自身Schema的所有者,天然持有Schema下所有对象的全部操作权限(包括ALTER、DROP、增删改查等)。这个权限是Schema所有权自带的内置权限,不需要额外通过GRANT授予,也不受CREATE TABLE这类系统权限的影响。
用SYS创建的kirk.test表归属在kirk的Schema下,kirk作为Schema所有者自然有权修改该表。之前测试kirk无法创建表,只是因为CREATE TABLE系统权限控制的是「新建对象」的行为,不会剥夺用户对自身Schema下已有对象的所有权。

如何创建无法修改现有表的用户

  • 常规场景下不要把需要保护的表建在普通用户的自有Schema中。单独创建专用的业务对象Schema(比如独立的数据所有者用户),所有业务表都存放在这个专用Schema下,再根据最小权限原则给普通用户授予必要权限(比如仅授予SELECT查询权限,不授予ALTER、UPDATE、DELETE、DROP等修改类权限)即可,普通用户自身Schema下不存放需要保护的业务表。
  • 如果有特殊要求必须在普通用户Schema下存放表、同时禁止用户修改,可以通过SCHEMA级DDL触发器拦截ALTER、DROP等修改操作,或者启用Oracle Database Vault功能做细粒度权限控制,强制限制用户对自身Schema下对象的操作权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 19:09:52