笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值,找寻数据的秘密,笔者认为,数据的价值不仅仅只体现在企业中,个人也可以体会到数据的魅力,用技术力量探索行为密码,让大数据助跑每一个人,欢迎直筒们关注我的公众号,大家一起讨论数据中的那些有趣的事情。
我的公众号为:livandata
oracle的权限与角色,主要是针对用户进行,是对用户进行区分的一个主要标准。
在oracle中,权限有两种:系统权限和对象权限;
两种权限需要搞清楚下面三个问题:
1)什么是系统权限/对象权限?
2)系统权限有哪些/对象权限?
3)怎么赋系统权限/对象权限?
方案是指对某一个用户建立的一个有多少表、视图等的策略,以方便进行表等的操作,一个用户一个方案。
角色是指与用户相关的一个权限集合;
1、系统权限:
刚建好的用户是没有任何权限的,需要对其赋予权限:
With admin option:是指这个权限可以向下继续分发,即此用户可以将此权限分配给其他的用户。
此时tom可以登录,系统权限不是级联回收的。
2、对象权限:
授予对象权限:
例如:
1)用户Money可以查询scott.emp表:
建立money用户之后给他授予session权限:
此时查询是不成功的:
因此需要登录到scott中对其赋予查询权限:
此时,再登录money用户,查询emp时就成功了。
2)更详细的赋权限,进行对某一表的操作:
给某一用户授予对象权限:
某一个权限,既可以授予一个用户,也可以授予一个角色,但是如果授予一个角色的话,就不可以带with grant option选项。
回收对象权限:
此时,Jones查不了数据了,这个会进行级联回收,与系统权限不一致。
3、角色:
角色分为预定义和自定义角色两类;
1)预定义角色:
2)自定义角色(一般是dba来创建):
角色授权:
例如:
此时我们新建的角色myrole1,就拥有了上面三个权限,下一步需要将这个角色分配给某个用户。
例如:
3)删除角色:
一旦角色被删除了,拥有这一角色的用户就会失去这部分权限。
显示角色信息:
例如:
Sys的角色更多,有比system全的权限。
4)精细访问控制:
主要是对访问的控制力度更加精细。
上例为:不同的客户端使用相同的语句访问数据库时,得到的结果不一致。