Managing Roles

本文详细阐述了数据库角色管理的核心概念,包括角色定义、权限类别、动态与可用性特性,以及如何创建、分配和激活角色。通过示例展示了如何为用户分配不同级别的角色权限,包括默认角色和自定义角色的启用与禁用机制,以及如何通过角色实现精细化的权限控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

image

image

角色是 privilege 合 单纯的privilege使用不方便。( 可以包括 system, object privilege, roles )

image

image

Improved performance ( 另一个好处 )

Dynamic : 一改全改,比如改变 role 里的部分权限,那么所有拥有该 role的user全部更改

avilability: 因为 role 有enable和 disbale, 所以,更加可靠。

image

你要有 create role 的 system privilege 。

image

image

image

image

image

image

查询角色中有哪些内容,包含3方面信息( system privilege, object priviege, roles ) --所以要查看3个数据字典

role_role_privs  --查看有哪些 role

role_sys_privs   --查看某个角色的 system privilege

role_tab_privs   --查看某个角色的 object privilege

image

image

image

SELECT * FROM role_sys_privs WHERE role like ‘CONNECT’; --查看 connect 这个role有哪些系统特权

image

给用户的角色分为 2 种, 一种是登录后就自动有了这些角色,这些角色就是 default role. ( 直接 enable ), 还有一种,就是登录后,并不是自动的 enable, 而是需要输入某个命令才能使这些角色 enable.

-1 将角色给用户

-2 ALTER USER name DEFAULT ROLE role_name; -- 还有其他方法,如上图,all 等等.

缺省角色是 r1 , 如果用于有2中角色,如果想使用 r2 角色,那么可以给role的口令保护,然后进入 r2

SET ROLE r1, r2 identified password. ( default role 不需要口令,其他的role, 如果你想使用可以提供 口令

image

注意, enable 和 disable 是session临时, 也就是说, 下次再重新连接session时, 这个role 又恢复到可用状态了.

image

image

The All option without the except clause works only when every role that is enabled does not have a password.

第 1 行, 是使能一个角色,在这个里边的就是 enable, 否则就不是。

image

image

image

 

image

In this example, admin_role is an application role and the role can be enabled only by modules define inside the PL/SQL package hr.employee.

hr.employee 是个 PLSQL 包。(10g 查看联机文档,books –> security –> security guide –> 13章)

image

任务: role payroll 发工资,benefits

用户: HR_CLERK

Because a role includes the privileges necessary to perform a task, the role name is usually an application task or a job title. The example above uses both application tasks and job titles for role names.

1. Create a role for each application task. The name of the application role corresponds to a task in the application, such as PAYROLL

2. Assign the privileges necessary to perform the task to the application role.

3. Create user role, The name of the user role corresponds to a job title, such as PAY_CLERK.

4. Grant application roles to user’s roles.

5. Grant user’s roles to users.

 

image

Passwords provide an additional level of security when enabling a role.

参考上图, 需要执行以下步骤:

image

用户使用 系统( hwms 例如 ) 连接数据库,比较安全,但是限制太大

用户使用 SQLPLUS 连接数据库,这样的话,可能修改很多东西,那么可以使用 default role, 一些查询的内容,使用 default role, 如果要修改,因为不是 default role, 就必须输入口令,那么,就无法修改,并且可以将role口令内嵌到系统中,那么,使用系统时,用户也可以修改内容。

image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值