数据库角色的简介

2 02 3 年,我那个朋友在讲数据库管理的时候提到了角色这个概念。
他说,为了方便管理用户和权限,可以把有相同权限的用户放在一起,形成一个角色。
就像Windows里的组一样。
他举例说,如果每个用户都要单独授权,那可真是个大工程。
但是,如果用角色来管理,那就简单多了。

他说,比如,你可以为有一类相同权限的用户建立一个角色,然后给这个角色分配权限。
这样一来,管理员只需要关注权限的种类,而不是具体是哪些用户。
而且,如果角色里的成员有变动,比如有人加入或者有人离开,管理员都不用再重新分配权限。

他提到,在SOLServer2 008 里,角色有两种:一种是系统预定义的角色,另一种是用户自定义的角色。
系统预定义的角色又分为服务器级的和数据库级的。
用户定义的角色都是数据库级的。
他说,这样设计的好处是提高了管理效率,减少了重复工作。
不过,他也提到,使用角色的时候也要注意权限的合理分配,不能让权限过于集中,否则会有安全隐患。
算了,你看着办吧。

数据库中用户和角色的区别

说实话,我当年第一次接触数据库的角色和用户概念时,也是一头雾水。
后来有个案例帮我搞懂了:咱们公司那个搞销售系统的DBA,以前老得给每个销售小弟单独设置权限,权限变更得手动改几十个用户。
结果系统一升级,突然发现权限逻辑全乱套了,最后加班加点硬改,差点把数据库搞崩。

有意思的是,后来他们改用角色制后,情况完全不一样了。
比如"销售看报表"这个角色,直接把报表查询权限挂上去,销售们要新增报表权限时,管理员只消在角色里加条目,所有人自动继承。
当时我看着那个DBA的监控屏,他随手点几下,系统就自动把权限同步到一百多个用户,我当场就"喔"了一声。

不过话说回来,角色管理也不是万能的。
我有个朋友在搞ERP系统时踩了个坑:因为角色设计太偷懒,一个叫"超级管理员"的角色给了系统所有权限。
结果后来有新人没经验,直接把某个角色全删了——那数据全炸了。
这块我没亲自跑过,但数据我记得是X左右,但建议你核实。

说白了,用户就是具体干活的,角色是权限的"批发商"。
你想想,要是每个用户都像身份证号那么长,权限表得有多胖?角色机制就是用抽象来简化现实。
但用得不好,抽象就会变成噩梦。

请教高人--------oracle 中创建角色与用户有何不同啊?

前些年我在一家公司做IT,有一次部门新来了几个同事,都是负责客户服务的工作。
他们每个人都需要访问客户资料,查看订单,但这些权限并不是单独给到他们的,而是通过一个叫做“客户服务组”的角色来统一管理的。

我记得那天是2 02 3 年4 月1 0日,我在服务器上创建了这个角色,并且为它配置了必要的权限。
然后,我把这个角色分配给了那几位新同事。
这样,他们就可以直接登录系统,无需再一个个手动配置权限了。

其实,我以前也遇到过类似的情况。
有一次,一个项目的团队成员变动,有几位新成员加入。
如果按以前的做法,得为每个人单独设置权限,那工作量可就大了。
有了角色,我就只需要授予他们“项目成员”的角色,然后他们就能直接获得项目所需的权限。

等等,我突然想到,其实这个角色和权限管理的过程,就像是我们生活中的分工合作。
比如家里装修,不是每个人都需要知道水电改造的具体细节,只需要告诉装修师傅需要做什么,师傅就会根据需求来安排。
这样既方便又高效。

那问题来了,这样的角色和权限管理,是不是在所有场景下都能发挥作用呢?或者,有没有可能存在一些特殊情况,让这种管理方式变得不那么适用呢?