对任何企业组织来说,数据的安全性最为重要。安全性主要是指允许那些具有相应的数据访问权限的用户能够登录到sql server 并访问数据以及对数据库对象实施各种权限范围内的操作,但是要拒绝所有的非授权用户的非法操作。因此,安全性管理与用户管理是密不可分的。sql server 2000 提供了内置的安全性和数据保护,并且这种管理有效而又容易。 本章主要讨论如何创建和管理用户账号,以及如何实现和管理安全性,同时包括很多技巧和注意事项,这些技巧和注意事项将使您的工作更轻松,高效。 sql server 2000 的安全性管理是建立在认证(authentication)和访问许可(permission)两者机制上的认证是指来确定登录sql server 的用户的登录账号和密码是否正确,以此来验证其是否具有连接sql server 的权限。但是,通过认证阶段并不代表能够访问sql server 中的数据,用户只有在获取访问数据库的权限之后,才能够对服务器上的数据库进行权限许可下的各种操作(主要是针对数据库对象,如表、视图、存储过程等),这种用户访问数据库权限的设置是通过用户账号来实现的。同时在sql server 中,角色作为用户组的代替物大大地简化了安全性管理。
所以在sql server 的安全模型中包括以下几部分: ? sql server 登录 ?? 数据库用户 ?? 权限 ?? 角色
14.1.1 sql server 登录认证简介 ms sql server 能在两种安全模式下运行: windows 认证模式 混合模式 (1) windows 认证模式 sql server 数据库系统通常运行在nt 服务器平台或基于nt 构架的windows 2000 上,而nt 作为网络操作系统,本身就具备管理登录,验证用户合法性的能力,所以win- dows 认证模式正是利用这一用户安全性和账号管理的机制,允许sql server 也可以使用nt 的用户名和口令。在该模式下,用户只要通过windows 的认证就可连接到sql server, 而sql server 本身也没有必要管理一套登录数据。 windows 认证模式比起sql server 认证模式来有许多优点,原因在于wndows 认证模式集成了nt 或windows 2000 的安全系统,并且nt 安全管理具有众多特征,如安全合法性,口令加密,对密码最小长度进行限制等。所以当用户试图登录到sql server 时,它从nt 或wndows 2000 的网络安全属性中获取登录用户的账号与密码,并使用nt 或windwos 2000 验证账号和密码的机制来检验登录的合法性,从而提高了sql server 的安全性。 在windows nt 中使用了用户组,所以当使用windows 认证时,我们总是把用户归入一定的nt 用户组,以便当在sql server 中对nt 用户组进行数据库访问权限设置时,能够把这种权限设置传递给单一用户,而且当新增加一个登录用户时,也总把它归入某一nt 用户组,这种方法可以使用户更为方便地加入到系统中,并消除了逐一为每一个用户进行数据库访问权限设置而带来的不必要的工作量。 注意:如果用户在登际sql server时未给出用户登陆名,则sql server将自身使用nt认证模式,而且如果sql server被设置为nt认证模式,则用户在登录时若输入一个具体的登录名时、sql server将忽略该登录名。 如果sql server是运行在windows95/98上的桌面版,则nt认证模式无效。
(2)混合认证模式 在混合认证模式下,windows 认证和sql server 认证这两种认证模式都是可用的。nt 的用户既可以使用nt 认证,也可以使用sql server 认证。前面已经介绍了windows 认证的含义,下面向读者介绍sql server 认证模式。
(3) sql server 认证 在该认证模式下,用户在连接sql server 时必须提供登录名和登录密码,这些登录信息存储在系统表syslogins 中,与nt 的登录账号无关。sql server 自己执行认证处理,如果输入的登录信息与系统表syslogins 中的某条记录相匹配,则表明登录成功。
14.1.2 sql server 认证模式的设置 在对登录进行增加删除等操作前,必须首先设置sql server 的认证模式。通过sql server enterprise manager 来进行认证模式的设置主要执行以下步骤: (1) 启动sql server enterprisemanager 选择,要进行认证模式设置的服务器。 (2) 右击该服务器,在弹出菜单中选择properties, sql server 将弹出sql server properties 对话框。 (3) 在sql server properties对话框中选择security 选项。如图14-1 所示。 (4) 在security 选项栏的 authentication 处选择要设置的认证模式,同时可以在 audit level 处选择任意一个单选按钮,来决定跟踪记录用户登录时的哪种信息,例如登录成功或失败的信息。 (5)在starup service account 设置当启动sql server enterprise manager 时默认的登录者中哪一位用户。