Oracle-Oracle数据库安全管理
发布日期:2021-06-30 17:44:50 浏览次数:3 分类:技术文章

本文共 5303 字,大约阅读时间需要 17 分钟。

Oracle数据库安全管理

下面通过一些小例子来熟悉一下:

  • Oracle数据库安全控制的实现。
  • Oracle数据库用户管理。
  • Oracle数据库权限管理。
  • Oracle数据库角色管理。
  • Oracle数据库概要文件的管理。
  • Oracle数据库审计。
  • (1)创建一个名为Tom的用户,采用口令认证方式,口令为Tom,默认表空间为USERS表空间,默认临时表空间为TEMP,在USERS表空间上配额为10MB,在BOOKTBS1表空间上的配额为50MB。
create user Tom identified by Tom default tablespace users temporary tablespace tempquota 10m on users quota 50m on booktbs1;User TOM 已创建。
  • (2)创建个名为Joan的用户,采用口令认证方式, 口令为Joan,默认表空间为BOOKTBS2表空间,默认临时表空间为TEMP,在USERS表空间上配额为10MB,在BOOKTBS2表空间上的配额为20MB、该用户的初始状态为锁定状态。
create tablespace BOOKTBS2 datafile 'D:\Oracle\app\administrators\oradata\BOOKSALES\BOOKTBS2_1.DBF'   SIZE 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;   create user Joan identified by Joan default tablespace booktbs2 temporary tablespace temp quota 10m    on users quota 20m on booktbs2 account lock;Tablespace BOOKTBS2 已创建。User JOAN 已创建。
  • (3)为方便数据库中用户的登录,为BOOKSALES 数据库中所有用户授予CREATESESSION系统权限。
grant create session to public;Grant 成功。
  • (4)分别使用Tom用户和Joan用户登录BOOKSALES数据库,测试是否成功。
conn Tom/Tom@BOOKSALES已连接.conn Joan/Joan@BOOKSALES连接失败  USER          = Joan  URL           = jdbc:oracle:thin:@(DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = BOOKSALES)    )  )  错误消息 = ORA-28000: the account is locked
  • (5)为Joan用户账户解锁,并重新进行登录。
alter user Joan account unlock;User JOAN已变更。conn Joan/Joan@BOOKSALES已连接.(6) Tom 用户和Joan用户登录成功后,分别查询books表、customers 表中的数据。conn Tom/Tom@BOOKSALES已连接.select * from books;

在这里插入图片描述

conn Joan/Joan@BOOKSALES已连接.select * from books;

在这里插入图片描述

  • (7)为Tom用户授予CREATE TABLE、CREATE VIEW系统权限,并可以进行权限传递:将图书销售系统中的各个表的SELECT、UPDATE、DELETE、INSERT 对象权限授予Tom用户,也具有传递性。
grant select,update,delete,insert on customers to Tom with grant option;Grant 成功。grant select,update,delete,insert on publishers to Tom with grant option;Grant 成功。grant select,update,delete,insert on books to Tom with grant option;Grant 成功。grant select,update,delete,insert on orders to Tom with grant option;Grant 成功。grant select,update,delete,insert on orderitem to Tom with grant option;Grant 成功。grant select,update,delete,insert on promotion to Tom with grant option;Grant 成功。
  • (8) Tom用户将图书销售系统中的customers表、publishers 表、books 表的查询权限以及CREATE VIEW、CREATE TABLE的系统权限授予Joan用户。
grant select on customers to Joan;Grant 成功。grant select on publishers to Joan;Grant 成功。grant select on books to Joan;Grant 成功。grant create table,create view to Joan;Grant 成功。
  • (9)利用Joan用户登录BOOKSALES数据库,查询customers表、publishers 表、books表中的数据。创建一个包含出版社及其出版的图书信息的视图publisher book。
conn Joan/Joan@BOOKSALES已连接.select * from customers;

在这里插入图片描述

select * from publishers;

在这里插入图片描述

select * from books;

在这里插入图片描述

create view publishers_view as select name,contact,phone from publishers;View PUBLISHERS_VIEW 已创建。
  • (10) Tom用户回收其授予Joan用户的CREATE VIEW的系统权限。
revoke create view from Joan;Revoke 成功。
  • (11) Tom用户回收其授予Joan用户的在customers表上的SELECT权限。
revoke select on customers from Joan;Revoke 成功。
  • (12)利用system用户登录BOOKSALES数据库,回收Tom用户所有具有的CREATETABLE系统权限以及在customers表、publishers 表、books 表上SELECT权限。
conn system/admin@BOOKSALES;已连接.revoke create table from Tom;Revoke 成功。revoke select on customers from Tom;Revoke 成功。revoke select on publishers from Tom;Revoke 成功。revoke select on books from Tom;Revoke 成功。
  • (13)分别查询Tom用户、Joan 用户所具有的对象权限和系统权限详细信息。
conn Tom/Tom@BOOKSALES;已连接.select * from user_sys_privs;

在这里插入图片描述

conn Joan/Joan@BOOKSALES;已连接.select * from user_sys_privs;

在这里插入图片描述

  • (14)创建一个角色bs¬_role, 将BOOKSALES数据库中books表的所有对象权限以及对customers表、publishers 表、orders表的SELECT权限授予该角色。
conn sys/admin@BOOKSALES as sysdba;已连接.create role bs_role not identified;Role BS_ROLE 已创建。grant select,update,delete,insert on books to bs_role;Grant 成功。grant select on customers to bs_role;Grant 成功。grant select on publishers to bs_role;Grant 成功。grant select on orders to bs_role;Grant 成功。
  • (15)将bs_role角色授予Joan用户,将CREATE SESSION、 RESOURCE、bs_ role角色授予Tom用户。
grant bs_role to Joan;Grant 成功。grant create session,resource,bs_role to Tom;Grant 成功。
  • (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;Profile BS_PROFILE1 已创建。
  • (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_session 1000failed_login_attempts 3 password_lock_time 7;Profile BS_PROFILE2 已创建。
  • (18)将概要文件bs_profle1 指定给Tom用户,将概要文件bs_profile2 指定给Joan用户。
alter user Tom profile bs_profile1;User TOM已变更。alter user Joan profile bs_profile2;User JOAN已变更。
  • (19)利用Tom用户登录BOOKSALES数据库,连续两次输入错误口令,查看账户状态:利用Joan用户登录BOOKSALES数据库,测试最多可以启动多少个会话。
conn Tom/aaa@BOOKSALES;连接失败  USER          = Tom  URL           = jdbc:oracle:thin:@(DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = BOOKSALES)    )  )  错误消息 = ORA-01017: invalid username/password; logon deniedconn Tom/aab@BOOKSALES;连接失败  USER          = Tom  URL           = jdbc:oracle:thin:@(DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = BOOKSALES)    )  )  错误消息 = ORA-01017: invalid username/password; logon deniedconn Joan/Joan@BOOKSALES;已连接.

创作不易,喜欢的话加个关注点个赞,蟹蟹蟹蟹

转载地址:https://lexiaoyuan.blog.csdn.net/article/details/93241715 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Oracle-Oracle数据库备份与恢复
下一篇:Oracle-SQL语句应用

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月30日 21时10分52秒