Oracle创建用户授权并回收

Oracle创建用户授权并回收

背景:现在mdip用户下有几个视图,要创建一个用户ejfz/Zdwy#2020,并授权,然后回收权限,目的是给别人一个账号只能查询几个视图。

一、创建用户

create user ejfz identified by Zdwy#2020;

二、授权

1、 授权用户角色

oracle提供三种标准角色(role):connect/resource和dba.

1.1connect role(连接角色)

临时用户,特指不需要建表的用户,通常只赋予他们connect role.
connect是使用oracle简单权限,这种权限只对其他用户的表有访问权限,包括select/insert/update和delete等。
拥有connect role 的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym)、回话(session)和其他 数据的链(link)。

1.2resource role(资源角色)

更可靠和正式的数据库用户可以授予resource role。
resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。

1.3dba role(数据库管理员角色)

dba role拥有所有的系统权限
包括无限制的空间限额和给其他用户授予各种权限的能力。

例如:grant connect,resource,dba to ejfz;

2、授权查询表或视图权限

grant select on mdip.t_ss_appointment to ejfz;
grant select on mdip.view_exam_req to ejfz;
grant select on mdip.t_bs_check_addr to ejfz;

3、授权创建视图权限

grant create view to ejfz;

三、回收权限

1、回收用户角色

REVOKE RESOURCE,dba FROM ejfz;

2、回收用户对象权限

REVOKE SELECT ON mdip.queue_type FROM ejfz;
REVOKE SELECT ON mdip.patient_Info FROM ejfz;
REVOKE SELECT ON mdip.queue FROM ejfz;
REVOKE create view from ejfz;

三、查询

1、查询当前用户被授予的角色

SELECT * FROM USER_ROLE_PRIVS;

2、查询当前用户的对象权限

SELECT * FROM USER_TAB_PRIVS;

3、查询当前用户的系统权限

select * from user_sys_privs;

四、查询所有的权限命令

DBA_* 描述的是数据库中的所有对象

ALL_* 描述的是当前用户有访问权限的所有对象

USER_* 描述的是当前用户所拥有的所有对象

1、查看所有用户:

select * from dba_users; —>显示所有用户的详细信息
select * from all_users; —>显示用户及用户id和创建用户时间三个字段
select * from user_users; —>显示当前用户的详细信息。

2、查看当前用户:

select * from v$session; —>查看所有连接信息

3、查看角色:

select * from user_role_privs; —>当前用户被授予的角色
select * from dba_role_privs; —>全部用户被授予的角色
select * from dba_roles; —>查看所有角色
Select * from ROLE_ROLE_PRIVS; —>查看所有角色被赋予的角色

4、基本权限查询:

select * from session_privs;  —>当前用户所拥有的全部权限
select * from user_sys_privs;  —>当前用户的系统权限
select * from user_tab_privs;  —>当前用户的表级权限
select * from dba_sys_privs;  —>所有用户的拥有的权限,可查询某个用户所拥有的系统权限
select * from role_sys_privs;  —>查看角色(只能查看登陆用户拥有的角色)所包含的权限

5、查看用户对象权限:

select * from dba_tab_privs; —>查看所有用户的对象权限
select * from all_tab_privs;   —>查看当前用户的所拥有对象
select * from user_tab_privs;  —>查看当前用户的对象权限
select * from V$PWFILE_USERS;  —>查看当前用户有sysdba或sysoper系统权限(查询时需要相应权限)

6、查看一个用户的所有权限包含其角色的权限:

select privilege from dba_sys_privs where grantee=‘SCOTT’
union
select privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee=‘SCOTT’ );

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值