繁体   English   中英

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

[英]Grant permission from one user to another in Oracle

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

为了说明这一点,Oracle数据库中有四个用户:A,B,C和D。

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

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

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

您可以使用角色对系统和对象特权进行分组,然后将这些角色分配给用户和其他角色。 这样,您可以将角色所包含的特权整体授予用户,这简化了安全性管理(请参见数据库概念中的“特权和角色授权” )。

例如,B有权访问D中的某个对象,B可以将D的对象授予授予权限给A吗?

如果用户SCOTT已被授予WITH ADMIN OPTIONWITH GRANT 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现在可以通过或不通过admin选项将此角色分配给其他数据库用户:

grant select_hr to bob;

请参见数据库安全性指南中的“授予用户特权和角色”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM