科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道SQL Server的有效安装 (2)

SQL Server的有效安装 (2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

微软总是试图使它的软件安装尽可能地简单顺畅,SQL Server2000的安装也不例外。如果一个SQL Server 7.0的安装已经存在,你可以将它升级――通过在安装选择对话框中选择升级路径并在后一个对话框中说明你想要升级默认实例。

作者:21tx 来源:21tx 2007年12月7日

关键字: 应用 安装 数据库 SQL Server

  • 评论
  • 分享微博
  • 分享邮件

安全

在安装过程中,你在2个对话框中说明和安全相关的信息:服务账号和验证模式。在服务账号对话框里,你填入SQL Server和SQL Server Agent服务的服务账号细节。每个服务使用在对话框中说明的账号来被操作系统调入,并且在操作系统中运行于这个账号的安全上下文里。比如:当你备份到一个磁盘设备,SQL Server检查你用来登录到SQL Server的登录是否具有适当的“备份数据库”权限。然而,创建备份文件设备并写入,SQL Server必须在磁盘或者网络共享中创建一个文件,这个操作使用SQL Server服务账号的安全上下文。

同样的,SQL Server Agent服务在SQL Server Agent服务账号的安全上下文下在SQL Server、操作系统或网络中运行过程。虽然一个在本机不具有管理权限的账号可以启动SQL Server 服务,把SQL Server 服务账号加入到本地管理员组是个好主意。否则,你需要额外地把所有所需的权限授权给该帐号,还需要授权该帐号合适的网络权限。

而如果你试图通过一个机器上不具有管理员权限的服务账号来启动SQL Server Agent,它甚至无法启动。而且如果SQL Server Agent在网络上的其他机器上执行操作,比如复制或者多服务器工作,你应该使用一个在其他机器上具有适当权限的域账号。比如在一个包含3台SQL Server机器的单域多服务器环境中,一台主服务器控制目标服务器上的自动活动。因为双方(主服务器和目标服务器)需要相互通讯,你需要确保主服务器上的SQL Server Agent服务账号在目标服务器上具有适当的权限,反之亦然。配置这样一个环境的最简便方法就是创建一个域账号,使它在所有服务器上成为本地管理员组的成员,并且通过该帐号来调用所有的SQL Server Agent服务。

在身份验证模式对话框中,你可以选择是否只允许Windows身份验证登录(Windows身份验证模式)或者Windows和SQL Server两者登录(混合模式)。你也可以为sa(System Administrator)的SQL Server登录指定一个密码。Windows身份验证模式是默认的和最常用的推荐安全模式。然而,为安全起见,我建议你选择混合模式并且为sa账号提供一个密码,在安装完成和处理完一些其他的安全项目后,再把验证模式改为Windows身份验证模式。如果你选择Windows身份验证模式作为你的服务器的安全模式,安装过程把sa登录创建为无效并且没有密码(因为SQL Server身份验证模式是无效的)。你可以在安装后更改sa的密码――我强烈建议你这么做――但是一开始就选择Windows身份验证模式是危险的,因为你可能忘了更改密码或者使用空密码,以为sa已经失效。

无论你选择何种模式,安装程序都为BUILTINAdministrators组创建一个Windows身份验证的登录,它映射到本地机器的管理员组。这个登录的创建意味着所有本地管理员组的成员,包括域组域管理员,都是你的SQL Server的系统管理员(sysadmin)角色的成员。给予网络和本地管理员在SQL Server上的毫无限制的权限并不总是一个好主意,因为这引入了安全风险,这样一来你可能决定从SQL Server 的sysadmin角色中移除BUILTINAdministrators,或者你可能从SQL Server中完全移去这些自动创建的登录而为DBA成员组用sysadmin身份创建一个登录――不是网络管理员。

如果你决定遵从上述这些建议,这样做就够了:首先,为DBA成员组用sysadmin身份创建一个登录,然后删除BUILTINAdministrators登录。如果你的服务器的身份验证模式时Windows而且你在为DBA创建登录以前删除所有具有sysadmin资格的登录,你会发现你自己被锁在了SQL Server之外,无法执行管理任务――如:创建新的登录。如果你落入了这个陷阱,你仍然可以通过把注册表HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server实例名MSSQLServerLoginMode的键值更改为2,来把SQL Server身份验证的模式改为混合模式,修改好后重新启动SQL Server服务即可。

虽然通过注册表可以控制SQL Server的登录模式是方便的,它也有个缺点。任何人只要具有编辑注册表键值的权限,包括网络和本地管理员,都可以更改SQL Server的身份验证模式。如果你用Windows身份验证模式来安装SQL Server,sa是失效的但是仍然具有一个空白的密码。如果接着你更改SQL Server身份验证模式到混合模式(这就使sa登录有效),任何人都可以作为sa登录。所以,绝对确保你一完成安装就更改sa密码或者在安装过程中选择混合模式并且为sa提供一个密码。

排序规则

接下来,你需要选择排序规则设置。SQL Server 2000中的排序规则(Collation)设置用来管理和语言相关的行为、对象名称和列的值的唯一性,以及排序规则(sorting rules)。在排序规则设置对话框里,你说明排序规则并在SQL Server排序规则和Windows排序规则两者之间选择其一。如果你需要和以前SQL Server版本的向后兼容性,选择SQL Server排序规则――比如,如果你打算在一个早期版本的SQL Server和SQL Server 2000之间使用复制。否则,选择Windows排序规则。SQL Server 2000的排序规则设置,不管是Windows或是SQL Server,合并了在先前版本中的3个独立的设置:字符集,排序次序和Unicode排序规则。除了整合旧的3个设置到一起外,SQL Server 2000在排序规则中还提供了比以前版本更为强大的灵活性。

在你安装SQL Server 2000时选择的排序规则决定了系统数据库的排序规则设置。要在安装后更该系统数据库的排序规则设置,你需要脚本化所有你的系统对象(比如:登录,消息,工作)并且运行rebuildm.exe,它用新的排序规则重建了所有的系统数据库。然而,你不必先导出用户数据库中的所有数据再在运行完rebuildm.exe后把他们再导入――就像你再SQL Server 7.0中所作的那样。你只须重新连接用户数据库到SQL Server。你可以用不同于默认服务器的排序规则(这是模板系统数据库的)的排序规则配置你的用户数据库,或者甚至用不同于服务器设置的排序规则连接或恢复一个数据库。你可以以后修改用户数据库的默认排序规则。对于特定的一列,你可以指定不同于默认的数据库排序规则的一种排序规则;你甚至可以稍后修改列的排序规则――如果该列上没有创建索引的话。

虽然在排序规则方面SQL Server 2000是灵活的,不要低估了你在安装时作的选择。正如我前面所言,服务器的排序规则应用到所有的系统数据库并且决定了记录在系统数据库中所有对象(如登录名,数据库名)的排序规则。进一步而言,tempdb的排序规则也是你在安装过程中选择的服务器排序规则。当你创建一个临时表,表的列使用tempdb的排序规则――除非你在每列的定义里指明COLLATE 数据库默认。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章