创建表的用户是所有者,他拥有所有表特权,这些特权无法撤消。with grant option允许用户把特权授予其他用户;应该谨慎地使用这个选项,因为它把控制表特权的过程委托给了其他用户。使用as GRANTOR 选项以另一个用户的身份授予特权。
只有DBA或具有授予权限的用户可以使用这个选项。只有授予一个特权的用户能够撤消这个特权。
授予和撤消表特权的语法如下:
grant [ all | [ select | insert | update | delete | index | alter | reference ] on [ TABLE | VIEW | SYNONYM ] to [ public | USERS ] [ with grant option ][ as GRANTOR ]; revoke [ all | [ select | insert | update | delete | index | alter| reference ] on [ TABLE | VIEW | SYNONYM ] from [ public | USERS ]; |
表特权存储在系统表systabauth中,这个表包含四列:
◆grantor,授予这个特权的用户
◆grantee,获得这个特权的用户
◆tabid,这个表在系统表中的编号
◆tabauth,表特权
使用下面的 SQL 语句列出表和具有表特权的用户:
select systables.tabname, systabauth.*from systables, systabauth where systables.tabid = systabauth.tabid and systables.tabid > 99 order by tabname; |
这个语句联结 systabauth 和 systables,从 systables 中获取表名并显示用户。tabauth 列包含特权,需要根据这个列中的位置进行解码(见图 1)。
图 1. tabauth 列包含的特权
tabauth 中的字符表示对于一个表有哪些表级特权。表 1 给出列中的位置与其表示的表和列级特权之间的对应关系。
表1. 表和列级特权之间的对应关系
大写字母表示用户可以把这个特权授予其他用户;- 表示用户不拥有这个特权。所以在图 1 中,Sarah 只有 customer 表的 select 特权,而 Robert 有 select、insert、update 和 delete 特权;没有列级特权。
与数据库特权一样,应该谨慎地使用 public。可以撤消一个用户的所有表特权,但是这个用户仍然拥有分配给 public 的特权。在默认情况下,每个表在创建时都有 public 特权,所以需要检查 public 特权,考虑是否需要修改默认的 public 特权。
在数据仓库系统中,用户只需要 select 特权。在 OLTP 数据库中,应该根据需求把特权限制在 select、update、insert 和 delete。
列特权
两个列级特权是 select 和 update。具有列级特权的用户不应该拥有表级的 select 或 update 特权。用户的表级 select 或 update 特权将覆盖列级特权。列级特权存储在 syscolauth 表中,它们限制用户是否可以查看或修改表中记录的指定列。
授予列级特权的语法如下:
grant [ select (COLUMN) | update (COLUMN) | reference ( COLUMN ) ]
on [ TABLE | VIEW | SYNONYM ] to [ public | USERS ][ with grant option ][ as GRANTOR ] ;
除非在表级撤消 select 和 update 特权,否则列级特权不起作用。当存在列级特权时,systabauth 表的 tabauth 列的第三个位置上会显示一个星号(见表 1)。
列级特权在控制对机密信息(比如工资或 SSN)的访问方面非常有用。
权衡考虑控制和访问
安全性是 DBA 的一项重要责任。既要保护组织的数据,又要满足适当的使用需求,这是个难题。关键是分配适当的特权级别。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
南大通用发布GBase 8t 定位高端交易型数据库
本周二,国产数据库厂商南大通用在北京国际会议中心发布了最新产品GBase 8t,目标锁定高端交易型数据库市场。
-
南大通用联手IBM 将提供基于Informix的自有数据库
IBM (NYSE: IBM)与天津南大通用数据技术股份有限公司今日宣布将在中国创建自主创新的数据库产品。
-
IBM推出全新Informix 11.7数据库软件
IBM公司今天发布了全新Informix数据库软件Informix 11.7(又称Panther)。Informix 11.7除了在性能、易用性等方面有大幅提升之外,还增强了分析功能。
-
海量数据库管理系统实施案例:合理定制
Hildebrand公司开发了自己的基于内存的前端关系型数据库,它基本上作为TimeSeries组件的一个过滤器。