- 实验目的
- 掌握Oracle数据库安全控制的实现。
- 掌握Oracle数据库用户管理。
- 掌握Oracle数据库权限管理。
- 掌握Oracle数据库角色管理。
- 掌握Oracle数据库概要文件的管理。
2.实验要求
- 为orcl数据库创建用户。
- 为orcl数据库用户进行权限授予与回收。
- 为orcl数据库创建角色,利用角色为用户授权。
- 为orcl数据库创建概要文件,并指定给用户。
3.实验步骤
(1) 创建一个口令认证的数据库用户usera_exer,口令为usera,默认表空间为users,配额为10MB,初始账户为锁定状态。
Conn system/sa123456@orcl
Create user usera_exer
Identified by usera
Default tablespace users
Quota 10M on users
Account lock;
(2) 创建一个口令认证的数据库用户userb_exer,口令为userb。
Conn system/sa123456@orcl
Create user userb_exer identified by userb;
(3) 为usera_exer用户授予create session权限、hr.employees的select权限和update权限。同时允许该用户将获得的权限授予其他用户。
Conn system/sa123456@orcl
Grant create session to usera_exer with admin option;
Grant select,update on hr.employees to usera_exer with grant option;
(4) 将用户usera_exer的账户解锁。
Conn system/sa123456@orcl
Alter user usera_exer account unlock;
(5) 用usera_exer登录数据库,查询和更新hr.employees中的数据。同时,将hr.employees的select和update权限授予用户userb_exer。
Conn usera_exer/usera@orcl
Grant select,update on hr.employees to userb_exer;
(6) 禁止用户usera_exer将获得的create session权限再授予其他用户。
Conn system/sa123456@orcl
Revoke create session from usera_exer;
Grant create session to usera_exer;
(7) 禁止用户usera_exer将获得的hr.employees的select权限和update权限再授予其他用户。
Conn system/sa123456@orcl
Revoke select,update on hr.employees from usera_exer;
Grant select,update on hr.employees to usera_exer;
(8) 创建角色rolea和roleb,将create table权限、hr.employees的insert权限和delete权限授予rolea;将connect,resource角色授予roleb。
Conn system/sa123456@orcl
Create role rolea;
Create role roleb;
Grant create table to rolea;
Grant insert,delete on hr.employees to rolea;
Grant connect,resource to roleb;
(9) 将角色rolea,roleb授予用户usera_exer。
Conn system/sa123456@orcl
Grant rolea,roleb to usera_exer;
(10) 为用户usera_exer创建一个概要文件,限定该用户的最长会话时间为30分钟,如果连续10分钟空闲,则结束会话。同时,限定其口令有效期为20天,连续登陆4次失败后将锁定账户,10天后自动解锁。
首先创建一个名为“example_profile”的概要文件:
Conn system/Sa123456@orcl
Create profile example_profile limit
Connect_time 30
Idle_time 10
Password_life_time 20
Failed_login_attempts 4
Password _lock_time 10;
然后将概要文件“example_profile”分配给用户usera_exer:
Alter user usera_exer profile example_profile;