一、需求
数据库有个表car,需要为这个表建立一个视图view_car,并新建一个用户user01,赋予查询这个视图的权限
二、实施步骤
1、以管理员clgl登陆数据库,新建视图view_car:
create or replace view view_car as select * from CAR;
2、新建用户user01
create user user01
identified by "123456";
3、授予用户user01权限
grant select on view_car_runtime_b to user01; //查询视图权限
grant connect to user01; //连接数据库权限
grant create synonym to user01; //新建同义词权限
4、以用户user01登陆数据库,可以访问到视图view_car的信息
select * from clgl.view_car; //查询视图view_car的信息,由于每次都需要加上用户前缀clgl.,十分不方便,因此设置一个同义词方便查询
5、为视图clgl.view_car新建一个别名car
create synonym car for clgl.view_car; //设置clgl.view_car的别名为car
select * from car; //用户可以直接输入car查询数据
6、以clgl登陆数据库,设置用户user01的允许访问会话数
alter system set resource_limit=true scope=both sid='*'; //使用resource_limit及profile限制用户连接
create profile user01_profile limit SESSIONS_PER_USER 1 FAILED_LOGIN_ATTEMPTS unlimited; //新建一个user profile:user01_profile
alter user user01 profile user01_profile; //更改用户user01的profile为user01_profile
alter profile user01_profile limit SESSIONS_PER_USER 2; //限定用户user01的连接数为2
当user01的访问连接数超过三个时,会提示错误:ora-02391:exceeded simultaneous sessions_per_user limit