前言
嘿,数据库大冒险家们!准备好迎接数据库管理的新挑战了吗?今天我们要探索的是Oracle数据库中的模式对象管理与安全管理!🛡️💻
在这篇博文【Oracle】玩转Oracle数据库(六):模式对象管理与安全管理中,我们将揭开数据库管理的神秘面纱,学会如何高效地管理数据库中的模式对象,并确保数据的安全与隐私!🔒🔍
无论你是想成为数据库安全专家,还是希望提升数据库管理的技能,相信我,本文都将成为你的灯塔!我们要掌握模式对象的创建、修改和删除,了解权限管理的重要性,学会如何保护数据库免受未授权访问和恶意攻击!准备好和我一起踏上数据库安全之路了吗?让我们的数据堡垒更坚固,让数据库的守护者更强大!🏰🔐
☀️一、研究目的
1.了解模式对象的类型
2.掌握在OEM中操作模式对象的方法
3.掌握命令方式建立表、视图、索引等常见对象的方法
4.熟悉Oracle中权限分类和设置,理解系统提供用户的角色和权限
5.熟练使用建立用户、角色,为用户授权、授予角色的命令
🌼二、研究内容
1.创建一个TESTUSER用户,密码为test,默认表空间为users表空间
2.创建用户后为其授予登录数据库和创建数据库对象的权限
3.用TESTUSER用户登录数据库
4.创建学生信息表(学号,姓名,性别,入学成绩),定义主键和输入数据(至少5条数据),提交添加的数据。并完成下面的题目:
(1)再继续添加2条数据,设置一个保存点savepoint,再添加1 条数据,执行回退到保存点的回退命令。查看此时表中数据
(2)查询入学成绩大于480的学生信息
(3)建立男生信息视图(创建视图的权限需要提前授予)
(4)在“成绩”字段上建立B-树索引
5.创建一个表簇,名为empl_dep,容纳empl表和dep表,有公共字段depno(簇键),大小为500,默认表空间为USERS表空间,存储参数为,初始化区间大小为100K,第二区间为200K等。
6.在表簇中建立empl表和dep表
(1)empl表(职员表)的主键为eno,外键为depno
(2)dep表(部门表)的主键为depno。
7.在表簇中建立一个簇键索引,名为empl_dep_index。
8.授予scott用户在empl表上的所有权限,提示:授权和收回权限可在sys/system/testuser用户登录以后进行授权。
9.收回scott用户拥有的empl表上DELETE权限
🌷三、研究结论
准备工作:
按住win+r输入sqlplus,如图1.
图1
输入用户名:sys as sysdba,密码:Csuft123.并输入startup启动实例如图2.
图2
【实验内容开始】
🔥1. 创建一个TESTUSER用户,密码为test,默认表空间为users表空间
答:创建语句如下
create user testuser identified by test default tablespace users quota 5M on users;
运行结果如图3
图3
🔥2. 创建用户后为其授予登录数据库和创建数据库对象的权限
答:创建语句为
grant create session,create table to testuser;
运行结果如图4
图4
🔥3. 用TESTUSER用户登录数据库
使用命令
conn testuser/test
运行结果如图5
图5
🔥4. 创建学生信息表(学号,姓名,性别,入学成绩),定义主键和输入数据(至少5条数据),提交添加的数据。
(1)再继续添加2条数据,设置一个保存点savepoint,再添加1 条数据,执行回退到保存点的回退命令。查看此时表中数据
答:创建命令为
create table student (s_num varchar2(10) Primary key, s_name varchar2(20) not null, s_sex varchar2(8) not null, s_grade int );
运行结果如图6
图6
查询表结果如图7
图7
此时表中无数据,向表中添加五条数据如图8
图8
(2)查询入学成绩大于102的学生信息
答:输入命令如图9
select * from student where s_grade>102;
图9
(3)建立男生信息视图(创建视图的权限需要提前授予)
答:输入命令如图10
create or replace view view_man as select * from student where s_sex='男';
图10
(4)在“成绩”字段上建立B-树索引
答:创建语句,结果如图11.
create index s_grade_index on student(s_grade);
图11
🔥5. 创建一个表簇,名为empl_dep,容纳empl表和dep表,有公共字段depno(簇键),大小为500,默认表空间为USERS表空间,存储参数为,初始化区间大小为100K,第二区间为200K等。
答:输入指令结果如图12
create cluster empl_dep(depno varchar2(4)) size 500 tablespace users storage( initial 100k next 200k)
图12
🔥6. 在表簇中建立empl表和dep表
(1)empl表(职员表)的主键为eno,外键为depno
答:如图13
图13
(2)dep表(部门表)的主键为depno。
答:如图14
图14
🔥7. 在表簇中建立一个簇键索引,名为empl_dep_index。
答:如图15
图15
🔥8.授予scott用户在empl表上的所有权限,提示:授权和收回权限可在sys/system/testuser用户登录以后进行授权。
答:由于需要授权,此处需要连接到sys即超级管理员用户,再输入命令进行授权如图16
grant all on testuser.empl to scott;
图16
🔥9. 收回scott用户拥有的empl表上DELETE权限
答:由于需要收回权限,此处需要连接到sys即超级管理员用户,再输入命令进行授权如图17
revoke delete on testuser.empl from scott;
图17
📝四、研究心得
嘿,数据库探险家们!这次的Oracle数据库管理实验简直就像是一场火爆的技术狂欢!我不仅熟悉了模式对象的种类和创建方式,还潜入了Oracle权限的秘境,尝试了各种神奇的授权操作!🔑💻
但是,技术之路永远都是充满挑战和惊喜的!在这次实验中,遇到了各种小插曲和技术困境。比如,授权的时候,我可是碰了不少壁!ORA-01031错误简直就是技术小怪兽!👾😅后来,我才发现,创建视图的权限没给全,导致了这场小插曲!
还有,授权操作可不是那么容易就能搞定的!一不小心就会掉进权限的迷宫!必须要返回到更高权限的用户进行操作,否则就是一触即发的错误!🚨
总的来说,这次实验虽然不算太难,但却要求我们做到认真细致!比如,创建表设置主键和外键时,属性格式一定要一致,稍有不慎就会出现技术小烦恼!😉💡
这就是技术之路的魅力所在!每一次挑战都是一次成长,每一次困境都是一次启迪!让我们继续探索,让数据库的世界更加精彩!💪🌟