oracle进阶【一】之初出茅庐—>oracle用户及权限管理实例操作

--学习oracle授权
/***********************学习oracle授权需明之begin****************************/


--oracle三类角色DBA/RESOURCE/CONNECT,具体权限可由一下SQL获知


select * from dba_sys_privs where grantee='DBA' ;--可授予数据库管理员、维护人员
select * from dba_sys_privs where grantee='RESOURCE' ;--可授予开发人员
select * from dba_sys_privs where grantee='CONNECT' ;--可授予访问人员


--查看用户权限
select * from dba_sys_privs where grantee='TESTUSER' ;
select * from dba_role_privs where grantee='TESTUSER' ;
--关于以上两个表都可以查看用户权限,到底什么区别呢?
--官方解释:
--1.DBA_ROLE_PRIVS describes the roles granted to all users and roles in the database.
--2.ROLE_SYS_PRIVS describes system privileges granted to roles. Information is provided only about roles to which the user has access.
--即dba_sys_privs描述的表详尽,如create table、select on xxTable等
--dba_role_privs描述的是用户拥有的角色
--ROLE_SYS_PRIVS描述的是某个角色到底有哪些系统权限


--关于系统权限网友总结待验证
--1. 系统权限unlimited tablespace是隐含在dba, resource角色中的一个系统权限. 当用户得到dba或resource的角色时, unlimited tablespace系统权限也隐式受权给用户.
--2. 系统权限unlimited tablespace不能被授予role, 可以被授予用户.
--3. 系统权限unlimited tablespace不会随着resource, dba被授予role而授予给用户.


/***********************学习oracle授权需明之end****************************/


/********************************部分测试SQL*********************************/
--创建一个用户testuesr1
create user testuser1 identified by testuser1 ;
--仅仅创建一个用户不进行授权时 testuser1是不能被访问和登录的
grant create session to testuser1;
--授予建表权限否则无权创建数据表
grant create table to testuser1 with admin option;--当前用户是DBA需要传递系统权限admin option
--创建一个表test1
create table test1 (id number(9),name varchar2(20));
--给testuser1用户授予创建用户的权限
grant create user to testuser1;
--testuser1用户下创建用户testuser11
create user testuser11 identified by testuesr11;
--需要给testuser11授予连接权限
grant create session to testuser11;--create session权限并没有传递给testuser1,因此不能通过testuser1给testuser11授权


--通过testuser给testuser1授予create session权限
grant create session to testuser1 ;
--testuser1创建session权限成功后
grant create session to testuser11;--此时也不能成功授权【因为testuser1没有create session的授予权限】
                                   --testuser可以直接授权给testuser11
grant create table to testuser11;--权限传递成功
create table test2(id number(9),name varchar2 (20));


--收回testuser1的create table权限
revoke create table from testuser1;
--进入testuser11
create table test3(id number(9),name varchar2 (20));--创建成功,权限并没有收到testuser1权限回收而收回


grant select on test1 to testuser11 with grant option;--授予testuser11查询testuser1的test1表权限,并可以传递给testuser11创建的用户
select * from testuser1.test1;--查询成功
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值