【TechTarget中国原创】问:你能跟我解释一下为什么在数据库安全方面封闭端的安全政策比开放的安全政策能更好地保护数据呢?你能对RBAC role层级里不受限的继承permissions这样的假设做出评价吗?
答:要说明为什么封闭的安全政策比开放的要好,首先我先举个例子。假设我的公司已经决定了Oracle用户使用1599端口(一个非默认端口),并且所有的密码都由8个字符和2个数字组成。如果在网上发布了这条信息,我现在就等于让任一黑客详细知道那个端口连接到哪个点以及我的数据库密码是怎样组成的。你愿意将这些信息告诉黑客吗?最好还是在你的公司好好保存这些信息。
我并不是Oracle领域之外的Role-Based Access Control方面的专家。所以我只能告诉你我知道的信息。我不知道用unconstrainted upward inheritence是不是一件坏事。例如,可能我拥有APPL_USER的Role,它被分配给了我所有的应用程序用户。但是这个Role只能允许用户执行只读select语句或者特殊表上的操作任务,所以我还有一个APPL_ADMIN role作为应用程序管理员。该role通过改变表,它还继承了APPL_USER role的功能,所以它还可以读表。这是一种将一个Role的所有的权限转到另一Role上的简单方法。遗憾的是,APPL_ADMIN Role(被赋予了APPL_USER Role的权限)还继承了APPL_USER role的所有权限。你不能将APPL_ADMIN的某些权限赋予APPL_USER。这对你的系统来说太强大了。更好的方法是将APPL_ADMIN和APPL_USER的某些权限加密。这样做就能区分这两种功能。