oracle学习笔记三——权限管理

 

通过将近1年对oracle数据库的接触,从陌生到现在的略微熟悉,感觉到这一段路走的还是蛮崎岖的。如果没有通过系统的学习,想要比较全面的掌握oracle是比较困难的,所以我现在也花比较大的精力去写一些关于oracle的管理心得,希望对朋友们有着确切的帮助。但是限于个人的能力有限,所以当中难免出现一些错误。还望朋友们多多指教。

今天就总结下个人对oracle中的权限管理心得吧。

首先oracle的权限分为系统权限跟对象权限,这些权限可谓是相当的庞大,通过这些权限,可以使oracle的安全性大大提高。单单的在oracle 10G中系统权限好像就有一百七十多种,而对象权限也有相当多(具体有多少种就没有去探究了,有兴趣的朋友可以去找下,到时记得告诉我就行了)。下面就逐个的讲解下各个常用的权限跟管理员是怎么样分配权限给普通用户的。

所谓oracle的系统权限就是用户对数据库的相关权限,比如建库,建表,建视图,建存储过程,登录数据库,修改密码等。如果一个管理员需要对一个普通用户(比如usertest)赋予登录数据库的权限的话,首先这个管理员需要有create session的权限。一般管理用户都用system去管理,上一篇文章也提到过,system这个管理员登录数据库,然后创建用户usertest,再给usertest赋值登录数据库的权限,具体的赋值语法为:grant 权限名 to 用户名。但是针对于oracle有很多种权限,所以在赋值权限的时候,不太可能把一个一个的权限去赋值给用户,所以,oracle为了解决这个赋值权限麻烦的问题,专门创建了一种叫做角色的东西,至于角色这玩意呢,以后的笔记中会详细讲下。

上面提到oracle除了有系统权限外还有对象权限(select、 update、 delete、 insert、 all、 cteate index……),所谓对象权限就是用户对其他用户的数据对象操作的权限。所谓的数据对象有比较多,我们不要把数据库单纯的看作是由表组成,其实数据对象包括表、视图、过程等。现在也解释的比较清楚什么是对象权限了,所以针对这个权限,我做出一下一些例子:

希望user1用户可以查询scott用户里面的emp表,如果没有赋值相应的对象权限的话,user1是不能访问emp表的。首先需要用scott用户登录,然后进行赋权给user1,赋权的语法为:grant select on emp to user1。赋值成功以后,用user1登录后,访问scott用户里面的emp表,语法为:select * from scott.emp。相关的删除,插入,更新等也是类似,这里就不一一举例了。

接下来scott希望user1对emp表的select权限有权限赋值给其他用户查询emp表的权限,语法为:grant select on emp to user1 with grant option。

授权以后,scott想收回user1用户的select的对象权限,语法为:revoke select on emp from user1。

限于时间有限,今天对oracle权限管理的讲解就先到为此,朋友们还可以自己去深入研究下其他各种权限,有兴趣的朋友可以去探究下下面的问题:如果scott回收了user1的查询权限,而user1又已经赋值了查询emp表的权限给了user2的话,那么此时scott是否会同时回收掉user2查询emp表的权限呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值