Oracle角色和权限层次结构

时间:2014-09-08 10:52:43

标签: oracle roles privileges

早上好,

我试图了解Oracle数据库角色和权限中的一件事:

所以,我正在尝试创建两个角色:程序员和经理。

程序员角色用户的想法是创建和插入表。 Manager角色用户的想法是获得程序员角色权限,PLUS更新记录。

我认为如果我将程序员角色授予管理员角色,最后一个角色可以:

  1. 创建一个表(来自程序员角色);
  2. 插入表格(来自程序员角色);
  3. 更新表中的记录(权限设置为Manager角色);
  4. 但是通过SQL开发人员,我将Programmer角色授予Manager角色,当我使用Manager User连接到数据库时,我无法找到在SYSTEM.A上创建的表(例如)。

    我是否需要授予明确的Manager角色也可以创建和插入?如果是这样,继承的重点是什么?


    程序员角色:插入&&创建表权限; 经理角色:更新&&选择任何表权限;

    由于我的目标是让Manager用户继承Programmer角色权限,因此可以这样实现:

    (设置角色和权限后):

    • DBA> ROLES>编辑经理角色>授予的权利> SELECT PROGRAMMER ROLE。
    • 断开所有管理员会话,然后重新连接。

    打开Manager SQL表并尝试创建表并选择,插入和更新它。您将看到Manager拥有来自"程序员"的采用者权限。作用。

1 个答案:

答案 0 :(得分:2)

SQL是一种非过程语言。话虽如此,你不需要在这里考虑继承。相反,Grant明确地在管理员角色上创建,插入和更新权限。

以下是您可以做的事情:

1-创建程序员和经理角色:

SQL> CREATE ROLE role_name由pass_word标识;

2-然后对每个角色授予GRANT权限(您的要求):

SQL> GRANT权限TO role_name;

3-通过向特定角色授予每个用户(取决于他是经理还是程序员)来授予用户(程序员和管理员)权限。

SQL> GRANT role_name TO user_name;

您可以在以下链接中找到更多详细信息: http://docs.oracle.com/cd/B10501_01/server.920/a96521/privs.htm#21065