(1)创建一个名为Tom的用户,采用口令认证方式,口令为Tom,默认表空间为USERS表空间,临时表空间为TEMP,在USERS表空间上配额为10M,在BOOKTBS1表空间上的配额为50M。
create user Tom
identified by Tom
default tablespace users
temporary tablespace temp
quota 10m on users
quota 50m on booktbs1;
(2)创建一个名为Joan的用户,采用口令认证方式,口令为Joan,默认表空间为BOOKTBS2表空间(实验3中题目2已创建),默认临时表空间为TEMP,在USERS表空间上配额为10MB,在BOOKTBS2表空间上的配额为20MB。该用户的初始状态为锁定状态。
create user Joan
identified by Joan
default tablespace booktbs2
temporary tablespace temp
quota 10m on users
quota 20m on booktbs2 account lock;
(3)为方便数据库中用户的登录,为ORCL数据库中所有用户授予CREATESESSION系统权限。
grant create session to public;
(4)分别使用Tom用户和Joan用户登录ORCL数据库,测试是否成功。
conn Tom/Tom@orcl
conn Joan/Joan@orcl
(5)为Joan用户帐户解锁,并重新进行登录。
//在之前先conn sys用户然后再进行操作
alter user Joan account unlock;
(6)Tom用户和Joan用户登录成功后,分别查询Tom表、Joan表中的数据。
conn Tom/Tom@orcl
select * from Tom;//查不到表是正确的,截图就行
conn Joan/Joan@orcl
select * from Joan;
(7)为Tom用户授予CREATE TABLE、CREATE VIEW系统权限,并可以进行权限传递;将图书销售系统中的各个表的SELECT、UPDATE、DELETE、INSERT对象权限授予Tom用户,也具有传递性。
grant select,update,delete,insert on bs.CUSTOMERS to Tom with grant option;
grant select,update,delete,insert on bs.PUBLISHERS to Tom with grant option;
grant select,update,delete,insert on bs.BOOKS to Tom with grant option;
grant select,update,delete,insert on bs.ORDERS to Tom with grant option;
grant select,update,delete,insert on bs.ORDERITEM to Tom with grant option;
grant select,update,delete,insert on bs.PROMOTION to Tom with grant option;
(8)Tom用户将图书销售系统中的customers表、publishers表、books表的查询权限以及CREATE VIEW、CREATE TABLE的系统权限授予Joan用户。
grant select on bs.customers to Joan;
grant select on bs.publishers to Joan;
grant select on bs.books to Joan;
grant create table,create view to Joan;
(9)利用Joan用户登录ORCL数据库,查询customers表、publishers表、books表中的数据。创建一个包含出版社及其出版的图书信息的视图publisher_book。
select * from bs.customers;
select * from bs.publishers;
select * from bs.books;
create view publisher_view as select name,contact,phone from BS.publishers;
(10)Tom用户回收其授予Joan用户的CREATEVIEW的系统权限。
//需先进入sys用户下
revoke create view from Joan;
(11)Tom用户回收其授予Joan用户的在customers表上的SELECT权限。
revoke select on bs.customers from Joan;
(12)利用system用户登录ORCL数据库,回收Tom用户所有具有的CREATETABLE系统权限以及在customers表、publishers表、books表上SELECT权限。
conn system/*****@orcl //*****为你的密码
revoke create table from Tom;
revoke select on bs.customers from Tom;
revoke select on bs.publishers from Tom;
revoke select on bs.books from Tom;
(13)分别查询Tom用户、Joan用户所具有的对象权限和系统权限详细信息。
conn Tom/Tom@orcl
select * from user_sys_privs;
conn Joan/Joan@orcl
select * from user_sys_privs;
(14)创建一个角色bs_role,将ORCL数据库中books表的所有对象权限以及对customers表、publisher表、orders表的SELECT权限授予该角色。
create role bs_role not identified;
grant select,update,delete,insert on bs.books to bs_role;
grant select on bs.customers to bs_role;
grant select on bs.publisher to bs_role;
grant select on bs.orders to bs_role;
(15)将bs_role角色授予Joan用户,将CREATE SESSION、RESOURCE、bs_role角色授予Tom用户。
grant bs_role to Joan;
grant create session,resourece,bs_role to Tom;
(16)创建一个bs_profile1的概要文件,限定该用户的最长会话时间为30分钟,如果连续10分钟空闲,则结束会话。同时,限定其口令有效期为20天,连续登录2次失败后将锁定账户,10天后自动解锁。
create profile bs_profile1 limit connect_time 30 idle_time 10 password_life_time 20 failed_login_attempts 2 password_lock_time 10;
(17)创建一个概要文件bs_profile2,要求每个用户的最多会话数为3个,最长的连接时间为60分钟,最大空闲时间为20分钟,每个会话占用CPU的最大时间为10秒;用户最多尝试登录次数为3次,登录失败后账户锁定日期为7天。
CREATE PROFILE bs_profile2 LIMIT
SESSIONS_PER_USER 3 CONNECT_TIME 60
IDLE_TIME 20 CPU_PER_CALL 10000
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME 7;
(18)将概要文件bs_profile1指定给Tom用户,将概要文件bs_profile2指定给Joan用户。
alter user Tom profile bs_profile1;
alter user Joan profile bs_profile2;
(19)利用Tom用户登录ORCL数据库,连续两次输入错误口令,查看账户状态;利用Joan用户登录ORCL数据库,测试最多可以启动多少个会话。
conn Tom/2@orcl;
conn Tom/2@orcl;
conn Tom/2@orcl;