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

Oracle数据库中PUBLIC的准确定义是什么?它是角色、用户还是用户组?

Oracle数据库中PUBLIC的准确定义

核心定位:PUBLIC是Oracle内置的特殊角色

PUBLIC既不是用户,也不是所谓的“用户组”,它是Oracle预定义的一个内置角色,所有数据库用户会自动成为该角色的成员,无需手动执行授予操作。

针对你的问题逐一说明:

  1. 是角色还是用户?
    明确是角色。它的核心作用是作为权限批量授予的载体——给PUBLIC授予的权限,会自动应用到所有数据库用户身上。

  2. 是否拥有Schema?
    没有。Oracle中Schema与用户是一一绑定的关系,只有用户账号才会对应专属Schema。PUBLIC作为角色,没有对应的用户身份,因此不存在属于它的Schema。

  3. 能否在其中创建对象?
    不能。因为没有专属Schema,自然无法在“PUBLIC的Schema”下创建表、视图等对象。不过需要注意:

    • 你可能会看到公共同义词(Public Synonym),它只是被授予了PUBLIC角色的访问权限,让所有用户都能通过同义词访问目标对象,但该同义词的实际归属仍是创建它的用户的Schema。比如执行CREATE PUBLIC SYNONYM emp FOR scott.emp;,这个同义词的所有者还是scott,只是所有用户都能通过emp直接访问scott.emp表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:10:11