SQL的访问控制

豆豆网   技术应用频道   2007年11月13日    社区交流

内容摘要:对于数据库管理员们来说,安全问题至关重要,他们一直设法保护他们不计其数的重要业务数据,以免被那些没有权利却又试图超越权限的内部人员或外部人员窥视外泄……

  用户和角色

  对于数据库管理员们来说,安全问题至关重要,他们一直设法保护他们不计其数的重要业务数据,以免被那些没有权利却又试图超越权限的内部人员或外部人员窥视外泄。所有的关系数据库系统都提供了某种内在的安全机制设计来尽量减少这些威胁。这些安全机制包括从Microsoft Access提供的简单口令保护到一些像Oracle和Microsoft SQL Server这样的高级关系数据库所支持的复杂的用户/角色结构。本文将着重介绍对所有执行SQL语言的数据库都很常见的安全机制。同时,我们还将顺带了解一下加强数据访问控制,保证数据安全的机制。

  基于服务器的数据库都支持用户(user)这个概念,类似于计算机操作系统中使用的用户概念一样。如果你对于Microsoft Windows NT和Windows 2000里的用户/组等层次结构都很熟悉的话,你会发现SQL Server和Oracle所支持的用户/角色的分组非常类似。

  强烈建议你为访问你数据库的每一个人创建一个个人数据库用户帐号。虽然不同的用户之间共享帐号,或者只为需要访问数据库的每种类型用户创建一个用户帐号,在技术上都是可行的,但是这种做法对于数据库安全来说并不妥当,原因有二:其一,这种做法会消除个人应负的责任——如果某恶意用户篡改了你的数据库(例如给他自己的银行帐号支付了一万块钱),你就不可能通过查看审计日志来追踪到具体的是哪个人做的;其二,如果某个特定用户离开了你所在的机构,而你想要删除他访问数据库的权限,那么你只能强制修改该组所有用户都在使用的登录口令才行。

  在不同的操作平台里,创建用户帐号的方法也不同,你可能需要查阅你所用的特定数据库管理系统的说明书才能找到确切的创建程序。Microsoft SQL Server的用户应该参照关于sp_adduser存储程序的具体用法。而对Oracle数据库管理员来说有用的可能是CREATE USER 命令。你还应该了解一下系统可选的登录认证方案。例如,Microsoft SQL Server支持使用Windows NT的集成安全设置。在这个安全方案设置下,会通过Windows NT用户帐号来识别连接到数据库的用户,因此在访问数据库的时候不用再另外输入用户登录帐号和口令。这个模式极受数据库管理员的钟爱,因为这种方式把帐号管理的重担卸给了网络管理人员,而且为实现终端用户的单点登录提供了便利。

来源:IT专家网    作者:cyw    责编:豆豆技术应用

正在加载评论...