重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
两种安全模式:
创新互联科技有限公司专业互联网基础服务商,为您提供成都温江机房,高防主机,成都IDC机房托管,成都主机托管等互联网服务。
Windows 认证模式:用户通过一个现成的Windows用户帐号来连接服务器。当一个用户试图与一个服务器连接的时候,SQL Server将会认证用户的Windows帐号的名称和密码。用户不能同时进入网络和SQL Server,只能进入其中的一个。这一方法也被称为一个被依赖的连接。
混合模式:这一模式将Windows认证模式和SQL Server认证联接在一起。用户可以通过一个Windows用户帐号进行连接,这正如Windows认证一样。但是,你也可以在SQL Server中直接建立用户帐号。每一个SQL Server帐号都存储了一个用户名和密码。
我们建议在可能的情况下都使用Windows认证模式。然而,混合模式很可以使用,特别是在SQL Server 7.0(或更早版本)都可以使用。.对于早期的SQL Server版本,SQL Server认证存在一些缺点。Windows认证已经集成了操作系统的安全系统,这就提供了比SQL Server认证更多的安全特性,很容易的使用,效率更加高,安全性更加好。在设计开始的时候,你应该认真考虑选择哪一种模式最为合适。
密码
无论采用哪一些模式,你应该记住在SQL Server中为系统管理者(sa)设置一个密码。当安装SQL Server时,安装程序会自动建立一个带有SQL Server注册名称(sa)和一个空白密码的管理用户。如果你保持这些用户设置原样而使用混合安全模式,任何具备一点SQL Server基础知识的用户都可以很容易地进入到你的数据库中并做任何他想要做的事情。如果你使用的是Windows认证模式,在理论上你无需为sa用户设置一个密码,因为SQL Server注册不会接受这些的设置。但是设置是一个很良好的操作,尤其是当你被迫转移到将来使用的混合模式的时候。
如果安全模式已经启动,注册将成为关键。你必须使用正确的.方法来启动程序,注册也是同样的,如果你不能正确地输入用户名和密码,程序将不能连接到网络,同时也不能连接到SQL Server。
作为一个管理者,一旦你已经启动了程序,你就做好安全管理的准备。可以通过定义以下的特性而实现:
用户(帐号):一个SQL Serve安全帐号代表着一个唯一的用户。一个用户也只有一个Windows帐号或者一个SQL Server注册,这与数据库中的用户帐号相统一。
组(帐号):每一个用户都属于一个或多个组,这由认证模式决定。每一个组都具有特定许可。作为一个组的成员,你将获得所有组的许可。
对象所有权:所有权属于建立对象的用户。所有者可以将访问权限分配给用户。如果你是一个视的所有者,你还可以决定哪些用户可以通过视来查看数据。
许可:一个许可代表着具有执行某些操作的权利,比如打开一个视或者更改一个存储程序。SQL Server承认许可的三种状态:GRANT给你一个用户访问;REVOKE删除访问;DENY防止用户访问对象。
任务:这是一个SQL Server安全帐号,可以将帐号的集合作为一个简单的单元来处理。任务定义在特定数据库中用户可以做哪些和哪些不可以做。
设计过程应该用效地定义哪些地方需要进行安全设置和如何设置。在这一过程之前你应该从两个方面考虑:
敏感数据;
敏感数据包括所有可能的数据,包括整个数据库中的所有数据,虽然这样的安全级别很少存在。你的工作就是定义为敏感数据并进行保护。
你选择的认证模式和建立的注册将通过限制哪些用户可以进入到数据库而实施第一步安全步骤。
第二步就要列举可以访问数据库的所有用户,然后决定所有数据是否对所有的用户都适用。通常,你需要对一些数据进行保护,比如工资或者其他私人数据。这就意味着只有特定的用户可以访问和查看数据。你还可以设置哪些用户更改数据。
始终记住的一条规则是“最小权利”概念。如果有人在他的工作中不需要访问数据,那即不要给他访问的权限。应该避免所有的用户都具有sa用户的访问权限。
具体的建议
当进行安全设置的时候,经验也是一个很好的老师,但通常也会有适用于通用数据库的设计准则
从开始就获得数据库和对象的所有权。当建立一个新的数据库时,你将会成为数据库的所有者,并能够设置数据库中所有发生一切。你可以以管理者的身份注册数据库。然而,对象的所有权属于建立对象的用户。虽然这可能造成所有权的转移,但可以确定这些的注册能够被用于建立所有的对象。
理解所有权链。这一安全特性防止用户建立自己的视而偷看一些敏感数据。例如,假设你建立一个从两个表中集中的数据的视,如果你是这两个表的所有者,当你允许其他用户使用视的许可时,SQL Server不会检查表的有关许可。
使用视和存储程序以分配给用户访问数据的权利,而不是让用户编写一些直接访问表格的特别查询语句。通过这种方式,你无需在表格中将访问权利分配给用户。视和存储程序
也可以限制查看的数据。例如,如果你的雇员表格包含一些秘密的工资信息,你可以建立一个省略了工资栏的视。
如果用户从特定程序中进入你的程序,你可以建立程序任务。一个程序任务就是分配到特定程序的用户,并给予用户的有关许可。使用程序任务,用户不能直接地认证数据库,相反,他们先认证他们自己的程序,这就决定哪些程序任务与服务器相连接。
时刻注意程序补丁。不可否认的,程序补丁是一些诀窍的集合。程序的发布,更新等都会引入新的问题,使用程序补丁是防止外界干扰和保护数据的最好和最容易的方法。可以访问微软主页上的SQL Service Pack下载页,查看当前最新的程序补丁。
为了提高服务器安全性 最有效的一个方法就是升级到 SQL Server Service Pack a (SP a) 要下载 SP a 请访问SQL Server SP a 页面 另外 您还应该安装所有已发布的安全更新 要订阅新安全更新的通知 请访问产品安全通知页面 使用 Microsoft 基线安全性分析器(MBSA)来评估服务器的安全性 MBSA 是一个扫描多种 Microsoft 产品的不安全配置的工具 包括 SQL Server 和 Microsoft SQL Server Desktop Engine (MSDE ) 它可以在本地运行 也可以通过网络运行 该工具针对下面问题对 SQL Server 安装进行检测 过多的sysadmin固定服务器角色成员 授予sysadmin以外的其他角色创建 CmdExec 作业的权利 空的或简单的密码 脆弱的身份验证模式 授予管理员组过多的权利 SQL Server数据目录中不正确的访问控制表(ACL) 安装文件中使用纯文本的sa密码 授予guest帐户过多的权利 在同时是域控制器的系统中运行SQL Server 所有人(Everyone)组的不正确配置 提供对特定注册表键的访问 SQL Server 服务帐户的不正确配置 没有安装必要的服务包和安全更新 Microsoft 提供 MBSA 的免费下载 要了解 MBSA 的全部文档和最新版本 请访问MBSA 页面 使用 Windows 身份验证模式 在任何可能的时候 您都应该对指向 SQL Server 的连接要求 Windows 身份验证模式 它通过限制对Microsoft Windows®用户和域用户帐户的连接 保护 SQL Server 免受大部分 Internet 的工具的侵害 而且 您的服务器也将从 Windows 安全增强机制中获益 例如更强的身份验证协议以及强制的密码复杂性和过期时间 另外 凭证委派(在多台服务器间桥接凭证的能力)也只能在 Windows 身份验证模式中使用 在客户端 Windows 身份验证模式不再需要存储密码 存储密码是使用标准 SQL Server 登录的应用程序的主要漏洞之一 要在 SQL Server 的 Enterprise Manager 安装 Windows 身份验证模式 请按下列步骤操作 展开服务器组 右键点击服务器 然后点击属性 在安全性选项卡的身份验证中 点击仅限 Windows 详细信息 请参阅 SQL Server Books Online 或 MSDN中的 身份验证模式 隔离您的服务器 并定期备份 物理和逻辑上的隔离组成 了SQL Server 安全性的基础 驻留数据库的机器应该处于一个从物理形式上受到保护的地方 最好是一个上锁的机房 配备有洪水检测以及火灾检测/消防系统 数据库应该安装在企业内部网的安全区域中 不要直接连接到 Internet 定期备份所有数据 并将副本保存在安全的站点外地点 有关备份过程和其他操作性最佳实践的指南 请参阅SQL Server 操作指南 分配一个强健的sa密码 sa帐户应该总拥有一个强健的密码 即使在配置为要求 Windows 身份验证的服务器上也该如此 这将保证在以后服务器被重新配置为混合模式身份验证时 不会出现空白或脆弱的sa 要分配sa密码 请按下列步骤操作 展开服务器组 然后展开服务器 展开安全性 然后点击登录 在细节窗格中 右键点击SA 然后点击属性 在密码方框中 输入新的密码 详细信息 请参阅 SQL Server Books Online 或 MSDN中的 系统管理员(sa)登录 主题 限制 SQL Server服务的权限 SQL Server 和 SQL Server Agent 是作为 Windows 服务运行的 每个服务必须与一个 Windows 帐户相关联 并从这个帐户中衍生出安全性上下文 SQL Server允许sa 登录的用户(有时也包括其他用户)来访问操作系统特性 这些操作系统调用是由拥有服务器进程的帐户的安全性上下文来创建的 如果服务器被攻破了 那么这些操作系统调用可能被利用来向其他资源进行攻击 只要所拥有的过程(SQL Server服务帐户)可以对其进行访问 因此 为 SQL Server 服务仅授予必要的权限是十分重要的 我们推荐您采用下列设置 SQL Server Engine/MSSQLServer如果拥有指定实例 那么它们应该被命名为MSSQL$InstanceName 作为具有一般用户权限的 Windows 域用户帐户运行 不要作为本地系统 本地管理员或域管理员帐户来运行 SQL Server Agent Service/SQLServerAgent如果您的环境中不需要 请禁用该服务 否则请作为具有一般用户权限的Windows域用户帐户运行 不要作为本地系统 本地管理员或域管理员帐户来运行 重点 如果下列条件之一成立 那么 SQL Server Agent 将需要本地 Windows管理员权限 SQL Server Agent 使用标准的 SQL Server 身份验证连接到SQL Server(不推荐) SQL Server Agent 使用多服务器管理主服务器(MSX)帐户 而该帐户使用标准 SQL Server 身份验证进行连接 SQL Server Agent 运行非sysadmin固定服务器角色成员所拥有的 Microsoft ActiveX®脚本或 CmdExec 作业 如果您需要更改与 SQL Serve r服务相关联的帐户 请使用 SQL Server Enterprise Manager Enterprise Manager 将为 SQL Server 所使用的文件和注册表键设置合适的权限 不要使用 Microsoft 管理控制台的 服务 (在控制面板中)来更改这些帐户 因为这样需要手动地调制大量的注册表键和NTFS文件系统权限以及Micorsoft Windows用户权限 详细信息 请参阅 Microsoft 知识库文章不使用 SQL Server 中的 Enterprise Manager 来更改 SQL Server 服务帐户 帐户信息的更改将在下一次服务启动时生效 如果您需要更改与 SQL Server 以及 SQL Server Agent 相关联的帐户 那么您必须使用 Enterprise Manager 分别对两个服务进行更改 在防火墙上禁用 SQL Server 端口 SQL Server 的默认安装将监视 TCP 端口 以及UDP端口 配置您的防火墙来过滤掉到达这些端口的数据包 而且 还应该在防火墙上阻止与指定实例相关联的其他端口 使用最安全的文件系统 NTFS 是最适合安装 SQL Server 的文件系统 它比 FAT 文件系统更稳定且更容易恢复 而且它还包括一些安全选项 例如文件和目录 ACL 以及文件加密(EFS) 在安装过程中 如果侦测到 NTFS SQL Server 将在注册表键和文件上设置合适的 ACL 不应该去更改这些权限 通过 EFS 数据库文件将在运行 SQL Server 的帐户身份下进行加密 只有这个帐户才能解密这些文件 如果您需要更改运行 SQL Server 的帐户 那么您必须首先在旧帐户下解密这些文件 然后在新帐户下重新进行加密 删除或保护旧的安装文件 SQL Server 安装文件可能包含由纯文本或简单加密的凭证和其他在安装过程中记录的敏感配置信息 这些日志文件的保存位置取决于所安装的SQL Server版本 在 SQL Server 中 下列文件可能受到影响 默认安装时 :\Program Files\Microsoft SQL Server\MSSQL\Install文件夹中 以及指定实例的 :\Program Files\Microsoft SQL Server\ MSSQL$ \Install文件夹中的sqlstp log sqlsp log和setup iss如果当前的系统是从 SQL Server 安装升级而来的 那么还应该检查下列文件 %Windir% 文件夹中的setup iss以及Windows Temp文件夹中的sqlsp log Microsoft发布了一个免费的实用工具 Killpwd 它将从您的系统中找到并删除这些密码 要更多地了解这个免费下载 请参阅 Microsoft 知识库文章服务包安装可能在文件中保存标准安全密码 审核指向 SQL Server 的连接 SQL Server 可以记录事件信息 用于系统管理员的审查 至少您应该记录失败的 SQL Server 连接尝试 并定期地查看这个日志 在可能的情况下 不要将这些日志和数据文件保存在同一个硬盘上 要在 SQL Server 的 Enterprise Manager 中审核失败连接 请按下列步骤操作 展开服务器组 右键点击服务器 然后点击属性 在安全性选项卡的审核等级中 点击失败 要使这个设置生效 您必须停止并重新启动服务器 详细信息 请参阅 Microsoft TechNet 中的 SQL Server 审核 以及SQL Server Books Online或MSDN中的 使用审核日志 lishixinzhi/Article/program/SQLServer/201311/22139
启动速达3000服务器时提示SQLSERVER未安装或未设置好登录账号和密码是设置错误造成的,解决方法为:
1、首先要先运行sql server 配置管理器sql server configuration manager。
2、在sql server 配置管理器中找到sql server 服务。
3、启动sql server manager studio 登录服务器。
4、登录成功后,在我们的服务器点右键,找到属性。
5、在打开的属性页面中,找到"安全性"选项卡。
6、在"安全性"选项卡中右侧就可以看到服务器代理账户。
7、选择启用,并填入正确的用户名和密码后,选择右下角的 确定 按钮即可。
在“对象资源管理器”中,右键单击服务器,再单击“属性” 。
在 “服务器属性” 对话框中,单击某页以查看或更改有关该页的服务器信息。 某些属性是只读属性。
Transact-SQL
通过使用 SERVERPROPERTY 内置函数查看服务器属性
连接到 数据库引擎。
在标准菜单栏上,单击 “新建查询” 。
将以下示例复制并粘贴到查询窗口中,然后单击“执行” 。 此示例在 语句中使用 SERVERPROPERTY SELECT 内置函数,以返回有关当前服务器的信息。 如果基于 Windows 的服务器上安装了多个 SQL Server 实例,而且客户端必须打开另一个到当前连接所使用的同一实例连接,则此方案很有用。