对角色、对象权限、系统权限、限额、表空间以及PDB与CDB的关系的理解

角色:一个用户可以拥有多个角色(一个用户相当于公司里一个人,角色相当经理、董事长等)即:角色是权限的集合。某个角色就代表某些特定权限(一些权限的封装集合),eg:DBA就是一个角色。可以简单做个测试,创建一个角色,把这个角色赋给这个用户。

对象: 可以类似看作Java中类new出来的对象;eg:表(Table)、索引(Index)、簇(Cluster)、视图Synonym、序列(Sequence)、过程(Procedure)和函数(Function)、触发器、约束等。(其中有一个作用可以为该用户授权使其访问其他用户下某个表,具体实现:法一:(1)对象窗口中找到Users文件夹;(2)找到要授权的用户然后右键,选中编辑这个选项;(3)然后找到对象权限,选择相应对象,就可以为该用户授权,对相应对象进行选择、插入、更新、删除等操作,yes是允许此权限,grantable是允许将此权限赋予其他用户。方法二:找到对应的表,然后右键编辑,找到对象权限,就可以将该表授权给给其他用户)

系统权限:授权用户可以创建,删除等操作

限额:设置表空间。

创建一个用户要想连接登录,就必须拥有connect角色或者拥有系统权限create session权限。

表空间:默认值选择users,临时选择temp。表空间system:Oracle数据库中的触发器,存储过程等都是存放在system下。如果用户创建的表都放在system中会对Oracle执行速度造成影响。

PDB与CDB的关系的理解:

PDB Pluggable Database是12c的一个重要的新特性, 但是对于CDB中的PDB,默认启动CDB时不会将所有的PDB带起来,这样我们就需要手动alter pluggable database ALL OPEN。

注意:PDBORCL与CDB数据库里面的角色不互通。还有必须在sys(管理员用户)用户下创建角色,但是对角色的对象权限设置,可以不用在sys用户下 。   如图,在c##test和sys用户下对同一个表对象设置是不同的。当角色只有sys.employees对象权限时,将角色赋给另一个普通用户c##test1,此时角色不能访问employees表,但是在c##test用户下编辑角色c##myrole,设置对象权限后,此时普通用户c##test1就能访问employees表。

  

 

Oracle规定公共用户和角色必须以c##开头,所以在ORCL中用户名必须带c##。在PDB中创建为本地用户和角色。

启动PDB:sql> alter pluggable database pdborcl open;

CDB和PDB之间的切换方式

sql> alter session set container = pdb1;

sql > alter session set container = cdb$root;

查询当前用户的系统权限:

 select * from user_sys_privs;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值