一、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;