java oracle 人员管理_oracle管理权限和角色

本文详细介绍了Oracle数据库中权限和角色的区别,包括系统权限和对象权限的管理,如create session、create table等。通过实例展示了如何授权、回收权限以及使用角色进行权限管理。强调了系统权限无级联回收,而对象权限具有级联特性。
摘要由CSDN通过智能技术生成

管理权限和角色权限和角色的区别主要在哪里

说白了,用户要操作数据库的时候,需要有对应的系统权限

要操作方案的时候,需要有对应的对象权限,为了简化管理,出现了角色

图解: 90768f0593a0e0c740b02eec71cb0aac.gif

系统权限:是指执行特定类型sql命令的权利。他用于控制用户可以执行的一个或是一组

数据库操作。比如,当用户具有了create

table权限的时候,它就可以在其的方案中建表了。

如果有create any table

权限的时候,可以在其他方案中建表了。在oracle中大概有100多权限

常用的有:

create

session 连接数据库

create view

建视图

create procedure

建过程、函数、包

create cluster

建族

create table

create public synonym 建同义词

create trigger 建立触发器

显示系统权限查询数据字典视图system_privilege_map

select * from

system_privilege_map order by name;

授予系统权限dba身份授予,如果带有with admin

option选项,则被授予权限的用户还可以给其他用户授予权限

例子:

1、创建两个用户zqh1、zqh2conn

system/manager;

create user zqh1 indendified by 123;

create user zqh2

indendified by 321;

这时两个用户登录是登录不了的

2、给zqh1授权权限grant

create session,create table to zqh1 with admin option;

--------这意味zqh1可以给其他用户继续授权

grant create view to

zqh1;

这时zqh1可以登录了

3、zqh1给zqh2授权conn

zqh1/123;

grant create session,create table to zqh2 with admin

option;

grant create view to zqh2;------------no ok!!!!

回收系统权限使用revoke命令,注意系统权限的级联回收问题---【不是级联回收】

根据上面zqh1、zqh2

system----------->zqh1---------------->zqh2

现在用system执行如下操作:

revoke

create session from zqh1;

-------思考:zqh2还能登陆吗?yes!!!

========================================================================

对象权限:指访问其它方案对象的权限。比如zqh1用户要访问scott.emp表,必须在emp表上

具有对象权限

常用的有:

alter

delete  select  insert   update  index索引   reference 引用  execute执行

显示对象权限可以显示用户或是角色所具有的对象权限,视图dba_tab_privs

conn

system/manager;

select distinct privilege from dba_tab_privs;

select

grantor ,owner,table_name,privilege from dba_tab_privs where grantee='BLAKE'

授予对象权限对象权限可以授予用户、角色和public。授予用户的时候可以用with

grant option

但是授予

角色的时候不可以用。

1、monkey用户操作scott.emp表,则必须授与相应的对象权限conn

system/manager as sysdba;

create user monkey identified by 123;

grant

create session to monkey;

conn monkey/123;

select * from scott.emp;

-------报错,表或者视图不存在

-------------------------------------------------------------

(1)monkey用户查询scott.emp表数据,如何执行?

conn

scott/tiger;

grant select on emp to monkey;

select * from

scott.emp;

(2)monkey用户修改scott.emp表数据,如何执行?

grant update emp to

monkey;

(3)monkey用户删除scott.emp表数据,如何执行?

grant delete emp to

monkey;

(4)有没有更加简单的方法,一次把所有权限赋给monkey?

grant all on emp to monkey;

2、能否对monkey访问权限更加精细控制(1)monkey只可以修改scott.emp的表的sal字段,怎么操作?

grant

update on emp(sal) to

monkey;

(2)monkey只可以查询scott.emp的表的ename,sal数据,怎么操作?

grant select on

emp(ename,sal) to monkey;

3、授予alter权限monkey要修改scott.emp表的结果

则必须授予alter对象权限

conn

scott/tiger;

grant alter on emp to monkey;

4、授予execute权限monkey想要执行其他方案的包/过程/函数,则须有execute权限

conn

system/manager;

grant execute on dbms_transaction(包) to monkey;

5、授予index权限想在别的方案的表上建立索引

conn scott/tiger;

grant

index on scott.emp to monkey;

6、使用with grant option选项conn scott/tiger;

grant select

on emp to monkey with grant option;

回收对象权限对象的权限的回收是否会级联收回呢?【yes!!!!】

scott--------------->zqh1------------->zqh2

conn

scott/tiger@orcl

revoke select on emp

from zqh1; -------zqh2能否查询scott.emp表【no!!!】

总结:关于级联回收,系统权限没有级联回收,对象权限有级联回收!!!!!

角色:相关权限命令的集合,使用角色就是为了简化管理。

分类:预定义和自定义角色两类

预定义角色是oracle提供的角色,每种角色

都用于执行一些特定的管理任务。connect/resource/dba

(1)connect角色具有的系统权限

alter session

create

cluster

create database link

create session

create table

create view

create sequence

创建角色

create role zqhrole not

identified;

角色授权

conn system/manager;

grant

create session to zqhrole with admin option;----连接数据库的授权

conn scott/tiger@orcl;

grant

insert,update,delete on emp to zqhrole;-----提倡表是谁的,由谁给角色授权

把角色分配给用户

conn system/manager;

create user

zqh3 identified by 123;

grant zqhrole to zqh3 with admin option;

zqh3登录

conn zqh3/123;

select * from

scott.emp;-------ok!!!!!

删除角色

drop role 角色名

问题:

假如zqhrole角色删除了,那么zqh3还能登录吗????

conn system/manager;

drop role zqhrole;

conn zqh3/123;【登不上去了!!!!!!】

显示角色信息:

(1)显示所有的角色

select * from

dba_roles;---------25个角色

(2)显示角色具有的系统权限

select privilege,admin_option from

roles_sys_privs where

role='角色名';

(3)显示角色具有的对象权限

查询dba_tab_privs

(4)显示用户具有的角色,及默认角色

查询dba_role_privs

select

grant_role,default_role from dba_role_privs where grantee='用户名';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值