Oracle manage privilege

本文详细介绍了数据库中的系统权限和对象权限类型,包括特权类型、授予和撤销权限的方式,并解释了WITH GRANT OPTION的作用及数据字典中记录这些权限的相关表。

1、privilege types:system ,object
2、grant revoke any 
3、grant create session to usr1 with admin option;授权传递,撤销无法传递

4、select any table

5、grant select on t to u3;
6、grant grant any object privileges to u2;
7、with grant option 授权,撤销都有传递性

 

数据字典:

system privilege:

                               dba_sys_privs  

                               session_privs
object privilege:

                               dba_tab_privs

                               dba_col_privs

Oracle 的 `DBMS_SCHEDULER` 包提供了对定时任务管理的功能,其中包括权限的授予与管理。`GRANT_OBJECT_PRIVILEGE` 是 `DBMS_SCHEDULER` 提供的一个过程,用于授予特定对象(如作业、程序、调度等)上的权限给其他用户或角色。 该方法允许管理员将某些操作权限授权给非所有者用户,从而实现更细粒度的访问控制和安全管理。 ### 功能描述 `GRANT_OBJECT_PRIVILEGE` 用于在 Scheduler 对象上授予指定用户或角色的操作权限。这些对象可以是作业(JOB)、程序(PROGRAM)、调度(SCHEDULE)等。支持的权限包括: - **EXECUTE**:执行某个程序或作业。 - **MANAGE**:修改或删除某个 Scheduler 对象。 - **SELECT**:查看某个 Scheduler 对象的属性。 此功能增强了数据库安全性,使得只有授权用户才能对关键任务进行操作[^1]。 ### 使用语法 ```sql DBMS_SCHEDULER.GRANT_OBJECT_PRIVILEGE( object_type IN VARCHAR2, object_name IN VARCHAR2, privilege IN VARCHAR2, grantee IN VARCHAR2, grant_option IN BOOLEAN DEFAULT FALSE); ``` #### 参数说明: - `object_type`:要授予权限的对象类型,例如 `'JOB'`, `'PROGRAM'`, `'SCHEDULE'` 等。 - `object_name`:对象的名称。 - `privilege`:要授予的权限,例如 `'EXECUTE'`, `'SELECT'`, `'MANAGE'`。 - `grantee`:被授予权限的用户名或角色名。 - `grant_option`:是否允许被授权者将该权限授予其他用户,默认为 `FALSE`。 ### 示例 #### 授予用户对某个作业的 EXECUTE 权限 ```sql BEGIN DBMS_SCHEDULER.GRANT_OBJECT_PRIVILEGE( object_type => 'JOB', object_name => 'my_job', privilege => 'EXECUTE', grantee => 'scott'); END; / ``` 此示例中,用户 `scott` 被授予对名为 `my_job` 的作业的执行权限。 #### 授予角色对程序的 MANAGE 权限 ```sql BEGIN DBMS_SCHEDULER.GRANT_OBJECT_PRIVILEGE( object_type => 'PROGRAM', object_name => 'my_program', privilege => 'MANAGE', grantee => 'developer_role', grant_option => TRUE); END; / ``` 在这个例子中,角色 `developer_role` 被授予对 `my_program` 的管理权限,并且该角色还可以将此权限授予其他用户。 ### 注意事项 - 只有拥有相应权限的用户(如对象所有者或具有 `MANAGE` 权限的用户)才能调用 `GRANT_OBJECT_PRIVILEGE`。 - 如果设置了 `grant_option => TRUE`,需谨慎使用,以防止权限扩散导致安全风险。 - 在多租户环境中(如 Oracle Multitenant),需要确保在正确的 PDB 中执行此操作。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值