所以笔者所传授给大家的第一个招数就是要学会使用拒绝操作。各位数据库管理员要牢记,在权限管理中,拒绝操作总是被优先执行。另外还有一个极端的例子,可以说明这个问题。如果数据库管理员把Public进行设置,设置为拒绝权限。此时由于拒绝权限被优先执行,则数据会禁止任何用户访问能数据库对象。故拒绝权限一般往往用在用户级别上,可以实现对个别特殊用户的权限控制,而不用给他们设置独立的组。这让数据库权限管理更加的灵活。 招数二:废除权限,可以让某些帐户恢复正常。 应用情景:现在数据库中有用户Landy,其属于销售员SALES角色。其中,销售员角色具有查询客户信息表Customs的权限。而由于某种原因,数据库管理员限制用户Landy访问数据库对象Customs表的权利。此时,数据库管理员给Landy用户显示的拒绝访问Customs表的权利。但是,现在这个限制其访问客户表的原因已经消除,用户Landy 可以正常访问表Customs了。此时,该如何处理呢? 此时,数据库管理员可以通过废除权限操作来完成需求。废除权限只删除所废除级别(如用户、角色或者组)上的已授予权限或者已拒绝权限,而在另外级别上所授予或者拒绝的同一权限仍然适用。废除权限类似于拒绝权限,因为二者都是在同一级别上删除已经授予的权限。但是,废除权限是删除已经授予的权限,并不妨碍用户、组或者角色从更高级别继承已授予的权限。为此,如果废除用户查看表的权限,并不一定能够防止用户查看该表。这跟拒绝权限操作就有本质的区别。 举例来说,在上面这个例子中,Landy用户刚开始其被显示的拒绝访问表Customs。虽然其所属的角色具有访问表Customs的权限,但是因为拒绝优先,所以用户Landy最终不能过访问这个表。此时,若限制原因消除,则数据库管理员可以采取废除权限操作,把Landy用户上的拒绝权限废除掉。因为废除权限只删除用户Landy上已拒绝访问这个表的权限,而不影响从角色SALES中继承统一权限。为此,用户Landy最终具有访问这个表Customs的权限。这就是废除权限操作的本质。 在实际工作中,废除权限操作与拒绝权限操作往往被用来处理一些特殊的帐户。如不少企业中,试用期员工其权限往往会受到限制。出于安全起见,企业不会让一些还在试用期的员工访问所有的数据。为此,就要对他们的权限进行限制。此时,就可以在这些用户帐户级别上显示的拒绝,实现部分访问限制的需求。当他们试用期过后,若试用合格的话,就可以把这些帐户的拒绝权限废除掉。如此的话,他们就可以正常继承他们所属角色或者组的权限。可见,拒绝权限与废除权限结合,可以让数据库全县的管理更加的统一。最终要的是,可以最大程度的避免因为权限冲突而导致的数据管理上的安全漏洞。 另外,在实际配置中,需要注意一个问题,虽然废除权限具有废除拒绝权限的能力,但是,他只能够在一个级别上其作用。如上面这个例子中,另外还有一个T_SALES的角色,其权限设置中,显示的拒绝访问表Customs。此时,若用户Landy同时属于SALES角色和T_SALES角色。虽然通过废除权限废除了用户Landy级别上的拒绝访问表Customs的权限。但是,用户Landy所属的T_SALES角色中的拒绝权限仍然具有优先执行的权力。所以,最终这个用户仍然不能够访问表Customs。所以,通过废除对权限的拒绝可以删除已经拒绝的权限。但是,如果用户在其他组或者角色级别有其他拒绝权限的话,在该用户访问某个对象的权限仍然会被拒绝。 招数三:授权操作,让用户访问权限一目了然。 应用情景:现在数据库中有用户Landy,其属于销售员SALES角色。其中,销售员角色具有查询客户信息表Customs的权限。而由于某种原因,数据库管理员限制用户Landy访问数据库对象Customs表的权利。此时,数据库管理员给Landy用户显示的拒绝访问Customs表的权利。但是,现在这个限制其访问客户表的原因已经消除,用户Landy 可以正常访问表Customs了。此时,该如何处理呢? (责任编辑:admin) |