oracle:用户权限管理和数据库对象管理

1.创建permanet类型表空间TS1,用户UA,用户UB,角色RA,授权UA和UB具有create session和create table权限,提交
在这里插入图片描述

2.授权UA具有create view,create sequence,create synonym的权限
在这里插入图片描述

3.UA用户下创建表TA(c1 int,c2 int),并插入若干行记录
在这里插入图片描述

4.UB相同操作
在这里插入图片描述

5.把查询表TA,TB的权限赋给角色RA
在这里插入图片描述

6.把查询表TB的权限赋给用户UA
在这里插入图片描述

7.把角色RA赋给UB
在这里插入图片描述

8.UB中查询TB
在这里插入图片描述

9.UB中查询TA
在这里插入图片描述

10.给UA创建同义词的权限,在UA中创建一个TB的同义词BTB
在这里插入图片描述

11.在UA中查询BTB
在这里插入图片描述

12.回收UA的查询TB的权限,查看同义词是否有效,从结果可以发现回收之后不能查询同义词。
在这里插入图片描述

13.UA用户下建立TC(c1 int,c3 int),并插入若干行记录
在这里插入图片描述

14.将TC的查询权限赋给角色 RA看UB是否可以查询TC
在这里插入图片描述

15.UA创立视图V1,查询TA的c1列,rownum<100的行
在这里插入图片描述

16.查询视图v1
在这里插入图片描述

17.UA建立一个视图V2,查询TA的c1 < 100 的行,with check option (c1<100)
在这里插入图片描述

18.插入视图V2两行记录,分别为满足约束和不满足约束的行
在这里插入图片描述

19.建立一个视图V3,连接TA和TC 试图插入视图V3一行记录
在这里插入图片描述

20.建立一个sequence Seq1,使用Seq1作为c1列的值,连续插入TA若干行,
提交;再连续插入TA若干行,回退;再连续插入TA 若干行,提交。查看seq1当前的值和查询TA表。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

20.建立一个表TD(id int, sq int,tri int,fac int,fib int,pow int);

写个PL/SQL代码块,依次插入1-100000的平方,三次方,阶乘,fibonacci数,2的n次幂 对于 1000003的模;

declare --定义数据类型
	sq number;
	tri number;
	fac number :=1;
	fib1 number :=0;
	fib2 number :=1;
	pow number :=1;
	temp number;
	modval number :=1000003;
	maxn number :=100000;
begin
	for id in 1 ..maxn--循环
	loop
		sq :=mod(id **2,modval);
		tri :=mod(id ** 3,modval);
		fac :=mod(fac*id,modval);
		pow :=mod(pow*2,modval);
		
		insert into TD
			values(id,sq,tri,fac,fib2,pow);--插入表
		temp :=mod(fib1+fib2,modval);
		fib1 :=fib2;
		fib2 :=temp;
	end loop;--结束循环
end;--结束程序块

在这里插入图片描述

23.在id上建立唯一索引随机查询10次的一行记录,记录用时。从上面用时和下面一张图用时来看,发现时间运行变少了,初步推断索引的作用能够减少运行时间和加快查询速度。然后通过查阅资料发现还有,利用索引的唯一性来控制记录的唯一性,然后缺点主要是:占据磁盘容量;不利于数据增删查改。
在这里插入图片描述

24.查询用户的表,列,视图,序列,索引等数据库对象的信息

select * from all_tables;
select * from all_tab_columns;--如果查询表名将*改成table_name
select * from all_views;
select * from all_sequences;
select * from all_indexes;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

25.查询用户拥有的所有表,列,视图,序列,索引等数据库对象的信息

将上面(25)的代码加一个where owner=‘user_name’;就可以了。这里以查询表名为例。
在这里插入图片描述

26.使用dba账户查询用户拥有的所有表,列,视图,序列,索引等数据库对象的信息,将用户切换到sysdba之后,可以查询系统所有用户的表,命令同(26)。
这里同样以查询表名为例。
在这里插入图片描述

27.查看当前session连接数
–select count(*) from v$process --当前的连接数
在这里插入图片描述

28.查看当前数据库的实例名
–select instance_name,host_name from v$instance;
在这里插入图片描述

29.查看当前数据库版本
select * from product_component_version;
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值