DB2权限管理中组和角色的管理的确让很多人(不管是菜鸟还是老鸟)感到困惑。 相对而言,oracle就好多了,根本就没有组的概念,只有角色。 而在DB2和Oralce的概念映射里,DB2的组实际上也被影射为Oracle的角色。 这说明原来组和角色原来是差不多的东西啊!
其实,从实际应用角度而言,的确是那么回事,组和角色在很多时候是可以互换的。虽然定义有所不一样。
组(group) - 一组用户的集合,就是LUW(linux/unix/Windows)中操作系统所管理的组,组的创建,修改,维护都是在数据库之外的OS级别进行的。
角色(role) - 一组权限的集合,是数据库级别进行创建,修改和维护的。
从定义上看,还是完全不同的东西嘛。但是如果仔细一想,其实他们解决的是相同的问题。就是为了方便权限的管理,批量的赋予用户权限。下面我们就举一个具体例子来说明三种情况下的权限管理。
权限需求: 某个数据库中有HR的两张表TAB1和TAB2,HR部门有两个数据库用户,分别是HR_USR1和HR_USR2, 这两个用户需要对这两张表有SELECT权限。
同时此数据库中Finance部门有两张表TAB3和TAB4,Finance部门有两个用户,分别是FN_USR1和FN_USR2, 这两个用户需要对这两张表有SELECT权限。