数据库管理:SQL Server 2008安全性探讨
Ruby 发表于:12年09月06日 11:18 [转载] DOIT.com.cn
SQL Server身份验证模式
Microsoft SQL Server 2008提供了两种对用户进行身份验证的模式,默认模式是Windows身份验证模式,它使用操作系统的身份验证机制对需要访问服务器平局进行身份验证,从而提供了很高的安全级别。另一种方式是SQL Server和Windows身份验证模式,允许基于Windows的和基于SQL的身份验证。因此,它又是被称为混合模式。Windows身份验证模式允许使用存储在本地计算机的安全帐户管理器SAM数据库中的现有帐户,或者,如果该服务器是活动目录域的一个成员,则可以使用Micorsoft Windows活动目录数据库中的帐户。使用Windows身份验证模式的好处包括允许SQL或数据库管理员使用已经存在的帐户,从而减少管理开销,以及允许他们使用强大的身份验证协议,例如Kerberos或Windows NT LAN Manager(NTLM)。在Windows身份验证模式中,SQL并不存储或需要访问用于身份验证的密码信息。Windows身份验证提供程序将负责验证用户的真实性。混合模式允许创建SQL Server独有的登录名,这些登录名没有相应的Windows或活动目录帐户。这可以帮助那些不属于您的企业的用户通过身份验证,并获得访问数据库中安全对象的权限。当使用SQL登录名时,SQL Server将用户名和密码信息存储在master数据库中,它负责对这些平局进行身份验证。
主体
主题Principal这个术语用于描述将与SQL Server交互的个人、组和进程。主题可用的资源取决于他们的位置。Microsoft SQL Server支持集中不同类型的主题,他们定义在三个不同的级别上:Windows级别、SQL Server级别和数据库级别。
登录名
和SQL 以前的版本不同,SQL Server 2008并不自动为[BUILTIN\Administrators]组创建登录名,以免使服务器上具有本地管理权限的任何人都可以登录进该SQL Server。相反,必须在安装向导中设置帐户时添加管理员,或在安装后将管理员添加到sysadmin角色。同时还创建一个SQL登录名sa,sa帐户对于所有的SQL功能拥有完全管理访问权限。在安装时,系统会提示为sa帐户指定密码。
- CREATE LOGIN [AughtEight\Bob] from Windows; GO
- CREATE LOGIN [AughtEight\G NorthWest Sales] from Windows; GO
- CREATE LOGIN Carol PASSWORD='Th1sI$|\/|yP@ssw0rd'; GO
- ALTER LOGIN Carol WITH PASSWORD='newpassword', CHECK_POLICY=OFF; GO
- DROP LOGIN [AughtEight\Bob]; GO