gpt4 book ai didi

database - 在 Oracle SQL Developer 中限制用户只能访问他自己的表

转载 作者:搜寻专家 更新时间:2023-10-30 20:11:22 26 4
gpt4 key购买 nike

我对 SQL Oracle Developer 中的权限、特权感到困惑。创建的用户可以访问所有模式/用户的表。我想限制数据库中的特定用户只能访问(更改、删除、更新等)他自己的表。任何人都可以指定我如何执行此任务。

我的意思是从系统权限中选择哪些权限让用户只能访问他自己的表。谢谢

最佳答案

只有在满足以下条件时,用户才会对其模式之外的表具有权限

  • 已将每个表的对象级权限授予用户(直接或通过角色),或
  • 系统级权限已授予用户(直接或通过角色),允许他们访问特定类型的所有对象。

如果用户已被授予系统级权限(即 SELECT ANY TABLE),您可以撤销系统级权限。如果已授予用户对每个表的显式权限,则您需要撤消对每个表的权限。

我的猜测是用户被授予了一个角色(可能是 DBA 角色),该角色包含一个或多个 ANY 系统权限。如果是这种情况,您需要撤销用户的角色或撤销角色的特权。

授予用户什么角色?

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>>)

关于database - 在 Oracle SQL Developer 中限制用户只能访问他自己的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11476847/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com