Oracle数据库权限设置(三)

时间:2024-03-19 17:15:53

一、系统默认登录

普通用户: conn scott/密码
普通管理员: conn system/密码
超级管理员: conn sys as sysdba; 然后输入密码;

二、创建新用户

create user 用户名 identified by 密码;

三、赋予新用户权限

1、允许用户登录
grant create session to 用户名;

2、允许新用户连接数据库,并创建数据库对象
grant connect to 用户名;

3、允许用户使用资源的权限(例如创建表、修改表)
grant resource to 用户名;

4、允许用户创建表空间
grant create tablespace to 用户名;

5、允许用户使用表空间
grant unlimited session to 用户名;

6、允许用户查询TEST表的记录
grant select on test to 用户名;

7、允许用户更新test表中的记录
grant update on test to 用户名;

8、允许用户增、删、改、查test表中的记录
grant all on test to 用户名;

9、允许用户删除表
grant drop on 表名 to 用户名;

10、更改用户密码
alter user 用户名 identified by 新密码;

11、授予对指定表特定字段的插入和修改权限,注意,只能是insert和update
grant update(id) on 表名 to 用户名;

12、授予用户alert任意表的权限
grant alert all table to 用户名;

13、删除用户
drop user 用户名 [cascade];
(注: 当用户下有表或其它对象时,需要添加cascade关键字,级联删除对象)

14、允许用户创建视图view
grant create any view to 用户名;

四、查看权限

1、查看当前用户所有权限
select * from user_ sys_ _privs;

2、查看所用用户对表的权限
select * from user_ tab_ privs;

五、排序

1、rank() over(order by 列名) rank :并列跳空

例如:查询每个学生的的姓名,考试的课程名和分数,并按分数进行排序,能产生并列跳空的序号
select st.stuName as 学生姓名,c.cName as 课程名称,sc.grade as 分数,rank() over(order by sc.grade) rank from student st,course c,score sc where st.id = sc.id and c.cId = sc.cId;
Oracle数据库权限设置(三)

2、dense_rank() over(order by 列名) dense_rank :并列不跳空

例如:查询每个学生的的姓名,考试的课程名和分数,并按分数进行排序,能产生并列跳空的序号
select st.stuName as 学生姓名,c.cName as 课程名称,sc.grade as 分数,dense_rank() over(order by sc.grade) dense_rank from student st,course c,score sc where st.id = sc.id and c.cId = sc.cId;
Oracle数据库权限设置(三)
3、row_number() over(order by 列名) row_number :依次排序

例如:查询每个学生的的姓名,考试的课程名和分数,并按分数进行排序,能产生并列跳空的序号
select st.stuName as 学生姓名,c.cName as 课程名称,sc.grade as 分数,row_number() over(order by sc.grade) row_number from student st,course c,score sc where st.id = sc.id and c.cId = sc.cId;
Oracle数据库权限设置(三)