我对SQL Oracle Developer中的权限,权限感到困惑 . 创建的用户可以访问所有架构/用户的表 . 我想限制数据库中的特定用户访问(ALTER,DROP,UPDATE等)只到他自己的表 . 任何人都可以指定我如何执行此任务 .
我的意思是从用户只能访问自己的表的系统权限中选择哪些权限 . 谢谢
如果用户只对其架构之外的表拥有权限
已将每个表的对象级权限授予用户(直接或通过角色),或
已向用户授予系统级权限(直接或通过角色),允许他们访问特定类型的所有对象 .
如果已授予用户系统级权限(即 SELECT ANY TABLE ),则可以撤消系统级权限 . 如果已为每个表授予用户显式权限,则需要撤消每个表的权限 .
SELECT ANY TABLE
我的猜测是,用户已被授予一个包含一个或多个 ANY 系统权限的角色(可能是 DBA 角色) . 如果's the case, you'd需要撤消用户的角色或撤消角色的权限 .
ANY
DBA
授予用户哪些角色?
SELECT granted_role FROM dba_role_privs WHERE grantee = <<the user name>>
为用户授予了哪些系统权限?
SELECT privilege FROM dba_sys_privs WHERE grantee = <<the user name>>
授予用户的角色具有哪些系统权限?
SELECT * FROM dba_sys_privs WHERE grantee IN (SELECT granted_role FROM dba_role_privs WHERE grantee = <<the user name>>)
1 回答
如果用户只对其架构之外的表拥有权限
已将每个表的对象级权限授予用户(直接或通过角色),或
已向用户授予系统级权限(直接或通过角色),允许他们访问特定类型的所有对象 .
如果已授予用户系统级权限(即
SELECT ANY TABLE
),则可以撤消系统级权限 . 如果已为每个表授予用户显式权限,则需要撤消每个表的权限 .我的猜测是,用户已被授予一个包含一个或多个
ANY
系统权限的角色(可能是DBA
角色) . 如果's the case, you'd需要撤消用户的角色或撤消角色的权限 .授予用户哪些角色?
为用户授予了哪些系统权限?
授予用户的角色具有哪些系统权限?