1.创建permanet类型表空间TS1,用户UA,用户UB,角色RA,授权UA和UB具有create session和create table权限,提交

sql server 2017 怎么只给查询权限_数据库

2.授权UA具有create view,create sequence,create synonym的权限

sql server 2017 怎么只给查询权限_表名_02

3.UA用户下创建表TA(c1 int,c2 int),并插入若干行记录

sql server 2017 怎么只给查询权限_数据库_03

4.UB相同操作

sql server 2017 怎么只给查询权限_表名_04

5.把查询表TA,TB的权限赋给角色RA

sql server 2017 怎么只给查询权限_数据库_05

6.把查询表TB的权限赋给用户UA

sql server 2017 怎么只给查询权限_连接数_06

7.把角色RA赋给UB

sql server 2017 怎么只给查询权限_连接数_07

8.UB中查询TB

sql server 2017 怎么只给查询权限_数据库_08

9.UB中查询TA

sql server 2017 怎么只给查询权限_表名_09

10.给UA创建同义词的权限,在UA中创建一个TB的同义词BTB

sql server 2017 怎么只给查询权限_表名_10

11.在UA中查询BTB

sql server 2017 怎么只给查询权限_连接数_11

12.回收UA的查询TB的权限,查看同义词是否有效,从结果可以发现回收之后不能查询同义词。

sql server 2017 怎么只给查询权限_表名_12

13.UA用户下建立TC(c1 int,c3 int),并插入若干行记录

sql server 2017 怎么只给查询权限_表名_13

14.将TC的查询权限赋给角色 RA看UB是否可以查询TC

sql server 2017 怎么只给查询权限_数据库_14

15.UA创立视图V1,查询TA的c1列,rownum<100的行

sql server 2017 怎么只给查询权限_数据库_15

16.查询视图v1

sql server 2017 怎么只给查询权限_表名_16

17.UA建立一个视图V2,查询TA的c1 < 100 的行,with check option (c1<100)

sql server 2017 怎么只给查询权限_数据库_17

18.插入视图V2两行记录,分别为满足约束和不满足约束的行

sql server 2017 怎么只给查询权限_表名_18

19.建立一个视图V3,连接TA和TC 试图插入视图V3一行记录

sql server 2017 怎么只给查询权限_连接数_19

20.建立一个sequence Seq1,使用Seq1作为c1列的值,连续插入TA若干行,

提交;再连续插入TA若干行,回退;再连续插入TA 若干行,提交。查看seq1当前的值和查询TA表。

sql server 2017 怎么只给查询权限_表名_20


sql server 2017 怎么只给查询权限_连接数_21


sql server 2017 怎么只给查询权限_表名_22

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;--结束程序块

sql server 2017 怎么只给查询权限_数据库_23

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

sql server 2017 怎么只给查询权限_数据库_24

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

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

sql server 2017 怎么只给查询权限_连接数_25


sql server 2017 怎么只给查询权限_连接数_26


sql server 2017 怎么只给查询权限_表名_27


sql server 2017 怎么只给查询权限_连接数_28


sql server 2017 怎么只给查询权限_表名_29

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

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

sql server 2017 怎么只给查询权限_数据库_30

26.使用dba账户查询用户拥有的所有表,列,视图,序列,索引等数据库对象的信息,将用户切换到sysdba之后,可以查询系统所有用户的表,命令同(26)。

这里同样以查询表名为例。

sql server 2017 怎么只给查询权限_连接数_31

27.查看当前session连接数

–select count(*) from v$process --当前的连接数

sql server 2017 怎么只给查询权限_连接数_32

28.查看当前数据库的实例名

–select instance_name,host_name from v$instance;

sql server 2017 怎么只给查询权限_数据库_33

29.查看当前数据库版本

select * from product_component_version;

sql server 2017 怎么只给查询权限_连接数_34