实验目的:掌握Oracle数据库的访问控制策略;掌握用户、权限和角色的管理方法。
实验要求:
- 创建两个用户,他们分别采用操作系统认证和数据库认证。
采用操作系统认证创建用户
先查看初始化参数OS_AUTHENT_PREFIX设置,创建用户时加上该前缀;
show parameter OS_AUTHENT_PREFIX;
create user ops$chen
identified externally;

采用数据库认证创建用户
create user zhang
identified by zhang123
password expire
default tablespace users
quota 10M on users
temporary tablespace temp;

- 授予用户系统权限(如创建会话和表等)和对象权限(如scott.emp的相关权限)。
授予用户系统权限
grant create session, create table to zhang;
grant create session, create table to ops$chen;

授予用户对象权限
grant insert,update,delete on scott.emp to zhang;
grant insert,update,delete on scott.emp to ops$chen;

- 创建两个角色,并为角色授予一定的权限,然后将角色授予上面创建的用户。设置默认角色和在会话中启用角色,然后执行用户通过角色所获得权限的相应操作。
创建角色
create role sr_admin identified by admin;
create role sr_query identified by query;

为用户授权
grant create session to sr_admin;
grant insert,update,delete on scott.dept to sr_admin;
grant select on scott.dept to sr_query;

将角色授予上面创建的用户
grant sr_admin to zhang;
grant sr_query to zhang with admin option;

设置默认角色
alter user zhang default role sr_admin;

在会话中启用角色
set role sr_query identified by query;

执行用户通过角色所获得权限的相应操作
select * from role_role_privs where ROLE='SR_ADMIN';
select * from role_sys_privs where role='SR_ADMIN';//角色的系统权限
select * from role_tab_privs where role='SR_ADMIN';//角色的对象权限
select * from dba_role_privs where grantee='ZHANG';
- 通过数据字典查询上面创建的用户和角色信息,以及为用户授予的权限和角色信息,以及当前会话启用的角色信息。
select username,default_tablespace,temporary_tablespace
from dba_users
where account_status = 'OPEN';//查询创建用户信息
select * from dba_role_privs where grantee='OPS$CHEN';//授予用户的角色信息
select role from session_roles;//查询当前会话启用的角色信息。
select * from user_role_privs;
本文详细指导如何在Oracle数据库中创建用户并配置操作系统及数据库认证,分配系统权限如会话创建和表操作,对象权限如scott.emp,创建和授权角色,以及通过角色进行权限操作。涉及查询用户信息、角色授权和角色使用实例,适合学习数据库权限管理的读者。
574

被折叠的 条评论
为什么被折叠?



