Oracle用户管理系列②--创建用户、权限授予,权限传递,权限授予调用方式,与权限收回全过程

时间:2024-03-31 15:40:47
Oracle与MySql之间存在着许许多多的不同点,都有着不同方向的设计思路。Oracle对于数据库而言,有着严格的监听与管控机制。更换数据库的操作,甚至要针对监听以及注册表进行相应的修改。(我所知道的东西,其他的,因能力有限,暂未深研究)
当然无论是Oracle,还是Mysql,都是存在用户一说的。而对于Oracle而言,用户创建之后,却存在很多限制,甚至是连登陆权限都没有。要想创建的用户,再创建新用户之后,能够进行相应的操作,那么必不可少的,需要做的其他的事情就是权限追加,这一件事情。
千万不要一股脑的,就投入到使用之中。个人觉得,Oracle数据库的学习,是非常打击人的,它所涵盖的事情,从注册表、服务、功能权限,都有非常严格的约束。也正是这些约束的存在,才真正显示了Oracle数据库的安全与强大。但对于一个学习者来说,这就是一个非常痛苦的事情。
因为学习Oracle数据库的学习,懂得人会想MySQL那样非常容易上手,不懂得的人,动一下,就全部崩盘,啥都干不了。严重打压初学者的学习心。
个人觉得,要想不再Oracle崩盘导致,自己要从重新安装下手外,抑或者修改监听、新建数据库、修改注册表中ssid。第一件事要了解的事情,那就是Oracle用户管理,在之前的博客之中,我写了关于Oraclede密码的更改,这一次,将从用户从创建用户、用户的权限授予、权限传递、权限授予调用方式,进行突破Oracle数据库。
从这一点进行了解Oracle数据库,很大程度上,除了运行还行外被破坏,Oracle对于我们来说,就可以非常简单的使用。
①、用户创建与权限授予
Ⅰ、用户创建:
指令:create user 用户名 identified by  密码
注意:创建用户之后,用户没有任何权限,连登录的权限都没有,必须系统管理员进行grant connect to 用户名,追加此功能。
Ⅱ、权限授予与追加
1、普通用户权限授予
     普通用户能够进行的权限授予,他没有系统管理那样,能够赋予连接数据库的系统权限,但是拥有能够让其他用户进行访问他的所管理的表,主要权限为也就是增删改查
    Oracle数据库,通过此功能,与mysql的用户管理多个数据库,数据库存在着几个表,有着非常明显的区别。但是却是能够感觉到哪一种异曲同工之妙的感觉。不再是以数据库,而是以角色这一种方式去进行管理数据库。猛然明白了前辈们所说的Oracle数据库的强大原因所在,这也是我在学习Oracle数据库之后,了解到Oracle数据库强大的原因之一。
指令:grant select on 表名 to 用户名
1、系统管理员权限授予
系统管理员的权限授予,除了和跟普通用户一样,具备将自己的数据库表的访问权限,给予其他成员访问,之外还有他是否再自己的这一个用户角色名之中,进行详细的表的增删改查。
  第一指令:grant connect to 用户名
  功能解释:将连接功能,即登录Oracles数据库的功能赋予该用户
  功能范围:权限授予者必须是系统管理员,系统管理
  管理员所有的表的权限,请查阅,普通用户的管理权限
功能详解如图:
Oracle用户管理系列②--创建用户、权限授予,权限传递,权限授予调用方式,与权限收回全过程
Ⅱ、权限传递与调用方式
1、权限一级传递
     在Oracle之中的权限传递这一功能中,有着一种非常独特的魅力,就在于Oracle数据库的有着一种力量传递的感觉。
    这一种传递效果,就跟优良基因,能够自己直接选择性的选择用户,即亲属,直接将自己所有的东西,全部授予你,并且你能够将他赋予其他的你所喜欢的人。
指令:grant select on 表名   to 用户 with grant option
结合上一张图的截屏,与文字描述进行,理解权限传递印象会更加深刻
Oracle用户管理系列②--创建用户、权限授予,权限传递,权限授予调用方式,与权限收回全过程
2、权限传递的二次传递
权限被授予之后,该用户就具备了它所赋予的权限,加入grant option后,也能够进行权限赋予。不加,则在此处进行断绝,就相当于绝种。
看到了这里,总感觉有一些热血沸腾,Oracle以角色进行分工合作的技能,在此时的魅力就爆发的更大。也许你现在并不理解,我打个比方。想象下,如果第一个人是总经理,第二被赋予的人经理,第三赋予的人就是普通员工。一个人的隐私并不会全部赋予一个人,他的能力也不会被完全的赋予一个人。但是一个人可以被不同的人赋予不同的权限。从顺向的去想,就是一个公司的管理制度;逆向的想,你一个人的权限不断的追加,一个人的权限不断的增加,那么就是一个人的成长过程。
想想就是美滋滋,多么具有人性化的软件设计,这也是我在学习Oracle数据库时,感觉最大魅力之一。
权限传递图片:(结合上两张图)
Oracle用户管理系列②--创建用户、权限授予,权限传递,权限授予调用方式,与权限收回全过程
Ⅲ、权限收回
权限回收,是保障一个系统安全,最常见的手段。换句话说,是为了保障系统的安全,比如说我给予了一定的权限给予你,但是你却利用我所赋予的权限,去违规操纵,去破坏系统的完整性。
为了避免这一存在,权限回收,是必不可免的,虽然送出去的东西,没有拿回来的可能。
但Oracle这一种数据库,却是对此做的非常非常的,感觉就像你不违法,我庇护你;你一违法,就如古代一样,诛你九族。感觉就是,犯我中华者,虽远必诛的感觉。
因为当权限回收时,无论是,第一代,还是第一代的子子孙孙,都将无法,进行访问此项,没有任何机会在进行具备这项特权,相当于免死金牌被回收的结果。
但权限回收,不能直接对于子代传递的功能进行回收(下图有证实),只能回收第一代。一会收,全军覆没。
权限回收指令:revoke select on 表名 from 用户名
Oracle用户管理系列②--创建用户、权限授予,权限传递,权限授予调用方式,与权限收回全过程
总之:
用户的权限设置是是可以传递的,传递后,如果权限被回收的的时候,采用的是级联回收机制,第一层次被回收后,后续被传递的权限,将会被重复回收,拥有表的格式无法进行直接回收被传递的二级传递的权限,必须通过回收第一次设置权限的方式进行获取

通过上面所描述的东西,你肯定了解到Oracle数据库的魅力所在,如果没有的话,还有一种方法去让你体验到Oracle数据库的魅力。有没有发现,其实我在上述的所写的东西,都是我一一根据我自己所学的东西,进行串联在一起,就组成了四张图片。
然而这两千多字的博客并不能描述出这些魅力,因为还有一些东西,我并没有直接书写出来(嘿嘿,故意的),如MySQL数据库的权限共享机制又是如何;回收权限时,我不是主权限者是否可以回收我下面我放出去的领导的权限。也就是,我利用了老板的权限,吹牛逼了,向我的下属打包票,说可以,但事实上不可以,你的下属就去做事了,之后就....,为避免如此,我在Oracle数据库进行二阶回收权限,那么又会如何?
如果你你想更加了解,那就将我所验证的结果,再验证一遍。在这些验证出来之后,再加上MySQL数据库的对比,再加上回收阶级疑惑问题。那么答案你就知道了。
如有兴趣,就互相讨论以上遗留问题,截屏或者评论皆可。
注意:四张图片,连接在一起,不可分割开来查阅!