gpt4 book ai didi

database - 在 Oracle 中将一个用户的权限授予另一个用户

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

我想知道如何将特定用户有权访问的所有数据库对象的权限授予另一个用户。

举例来说,Oracle数据库中有四个用户:A、B、C、D。

  1. 用户 A 不拥有任何对象,但可以访问 B 和 C 中的某些对象。
  2. 用户 B 和 C 拥有一些对象,但也可以访问 B、C 和 D 中的其他数据库对象。

现在我希望用户 A 拥有用户 B 和 C 拥有的所有特权(其中一些 A 可能已经拥有)。

执行此操作的正确方法是什么。我应该使用查询还是过程?这个过程是否应该始终在数据库对象所有者的登录下运行?比如B可以访问D中的某个对象,B可以把D的对象的grant权限给A吗?

最佳答案

您可以使用角色对系统和对象权限进行分组,然后将这些角色分配给用户和其他角色。通过这种方式,您可以将角色包含的权限授予全体用户,从而简化安全管理(请参阅数据库概念中的 "Privilege and Role Authorization")。

For example, B has access to some object in D, can B give grant permission of D's object to A?

用户 SCOTT 可以将对象权限、系统权限或角色授予另一个用户或角色,如果他被授予此权限或角色 WITH ADMIN OPTION具有授予选项。例如角色select_hr有权限查询用户HR拥有的一些表:

create role select_hr;
grant select on hr.employees to select_hr;
grant select on hr.departments to select_hr;

现在您可以通过以下方式将此角色分配给 SCOTT:

grant select_hr to scott with admin option;

SCOTT 现在可以将这个角色分配给其他有或没有管理员选项的数据库用户:

grant select_hr to bob;

参见 "Granting a User Privileges and Roles"在数据库安全指南中。

关于database - 在 Oracle 中将一个用户的权限授予另一个用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16682760/

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