Oracle学习操作用户权限角色

Posted 有点懒惰的大青年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle学习操作用户权限角色相关的知识,希望对你有一定的参考价值。

一、oracle用户:                                      

 

二、权限                                              

1.系统权限:

sys登陆创建c##test用户后,给用户c##test授权,并且带有传播性:

SQL> create user c##test identified by 123456 default tablespace users;

SQL> create user c##test2 identified by 123456 default tablespace users;

SQL> grant create session, create table to c##test with admin option;

授权成功。

c##test用户就可以给之前创建完毕的c##test2用户,授权刚才可以传播的权限create session,create table:

SQL> grant create session to c##test2;

授权成功。

SQL> grant create table to c##test2;

授权成功。

select * from 

 

2.对象权限:

现在sys用户下面创建表AA;查看这个表是这样的:select * from sys.AA;
使用test用户来查看select * from sys.AA是没有权限的;提示表或视图不存在;
sys登陆,给test用户权限能查看这个表:
grant select on AA to test;
test下,test现在就能查看sys.AA这个表了;但是不能update:
update sys.AA set name=\'呵呵\' where id = 1;  提示权限不足;
sys下,授予test修改表AA的权限:
grant update on AA to test;
test就能修改AA表了;
 
一个一个的授权太麻烦了,sys可以将AA表的所有权限都授予test:
grant all on AA to test;
test用户现在拥有所有操作sys.AA表的权限了,现在test将这些权限传播给test2,提示权限不足,因为test并没有这些权限;
grant select on sys.AA to test2;
sys给test授权sys.AA表的所有权限,并且带传播特性:
grant all on AA to test with grant option;
test再次将操作sys.AA表的权限授予test2:就能成功了;
grant select on sys.AA to test2;
sys回收test对于sys.AA表的更新权限:
revoke update on AA from test;
sys回收test、test2对于AA表的所有权限:
revoke all on AA from test, test2;
 
 
三、角色:                                      

sys下查看角色,select * from dba_roles;

创建角色:

create role role_AA;

给这个角色授予一些权限:

grant select, update, insert, delete on AA to role_AA;

给test用户分配这个角色:

grant role_AA to test;

test用户select * from sys.AA就能查看表了;

 

比如新创建一个用户,分配一个dba的权限,这个用户就拥有很多的权限了;
create user zhangsan identified by 123456 default tablespace users;
grant dba to zhangsan;

 

以上是关于Oracle学习操作用户权限角色的主要内容,如果未能解决你的问题,请参考以下文章

暑假周记一

oracle 中如何创建一个角色并把角色赋予指定账户

Oracle用户授权角色管理

Oracle 用户,角色,权限等

Oracle的用户角色以及权限相关操作

Oracle的用户角色以及权限相关操作