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

Oracle中如何在不删除用户的前提下禁止其访问指定视图

Oracle禁止指定用户访问特定视图的方法

不需要删除non_admin用户,直接回收已授予的对象权限就能实现需求,这也是Oracle权限管理的标准操作。

你之前给non_admin单独授予了retailx.SKU_O_DETAILS视图的SELECT查询权限,要禁止该用户访问这个视图,用retailx schema所属账号,或者有DBA权限的管理员账号(比如SYS、SYSTEM)执行下面的SQL即可:

REVOKE SELECT ON retailx.SKU_O_DETAILS FROM non_admin;

执行完语句后,non_admin就失去了这个视图的查询权限,再尝试访问会直接报ORA-01031权限不足的错误,完全满足禁止访问的要求。

实操时注意几个点:

  • 这个操作只会回收non_admin对这一个视图的查询权限,不会影响用户的其他权限,也不会改动用户账号本身、用户自己创建的对象,完全不需要删用户。
  • 如果你之前不是直接给用户授权,而是通过角色间接给non_admin分配的视图查询权限,要么回收对应角色上的该视图权限,要么把non_admin从对应角色里移除就行,效果是一样的。
  • 权限回收是即时生效的,不需要重启数据库,用户已经建立的连接也会立刻失去对应访问权限,不用等用户重连。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 07:57:27