Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server 2008:我应该使用Windows身份验证还是SQL Server身份验证?_Sql_Sql Server_Sql Server 2008_Ms Access_Odbc - Fatal编程技术网

SQL Server 2008:我应该使用Windows身份验证还是SQL Server身份验证?

SQL Server 2008:我应该使用Windows身份验证还是SQL Server身份验证?,sql,sql-server,sql-server-2008,ms-access,odbc,Sql,Sql Server,Sql Server 2008,Ms Access,Odbc,我有一个MS Access 2007前端。我会有多个用户。它们都将出现在网络公司域上。我应该使用Windows身份验证还是SQL Server身份验证通过ODBC连接到SQL Server 2008?Windows身份验证将允许更无缝的身份验证过程,即单点登录 从以下文章: SQL Server身份验证的缺点 如果用户是Windows域用户 谁有的登录名和密码 窗户,他仍然必须提供 另一个(SQL Server)登录和 连接的密码。跟踪 需要使用多个名称和密码 对许多用户来说很难。不得不 每周

我有一个MS Access 2007前端。我会有多个用户。它们都将出现在网络公司域上。我应该使用Windows身份验证还是SQL Server身份验证通过ODBC连接到SQL Server 2008?

Windows身份验证将允许更无缝的身份验证过程,即单点登录

从以下文章:

SQL Server身份验证的缺点

  • 如果用户是Windows域用户 谁有的登录名和密码 窗户,他仍然必须提供 另一个(SQL Server)登录和 连接的密码。跟踪 需要使用多个名称和密码 对许多用户来说很难。不得不 每周一次提供SQL Server凭据 连接到网络的时间 数据库可能很烦人
  • SQL Server身份验证无法使用 Kerberos安全协议
  • Windows提供附加密码 不适用于的策略 SQL Server登录
SQL Server身份验证的优势

  • 允许SQL Server支持旧版本 应用程序和应用程序 由第三方提供: 需要SQL Server身份验证
  • 允许SQL Server支持 具有混合操作系统的环境 系统,其中所有用户都不是 由Windows域验证
  • 允许用户从未知位置连接 或不受信任的域。例如, 已建立的应用程序 客户使用指定的SQL连接 服务器登录以接收状态 他们的命令
  • 允许SQL Server支持 基于Web的应用程序,其中用户 创造他们自己的身份
  • 允许软件开发人员 通过以下方式分发其应用程序: 使用复杂的权限层次结构 基于已知的预设SQL Server 登录

这里有一篇关于每个人的优点/缺点的好文章

与许多涉及安全实现的事情一样,您应该做什么取决于您的目标

从您的问题中,我不确定您是否打算将每个用户的凭据传递给SQL Server,或者是否计划使用Windows身份验证或SQL Server身份验证进行单一登录。如果选择后面的选项,SQL Server身份验证可能是一种方式,因为它限制了网络帐户。如果您选择以前的Windows身份验证,可能对您的用户更好,因为它提供单点登录


另外,我个人的偏好是让每个应用程序使用自己的一组凭据进行数据库交互。这就限制了用户只能拥有应用程序提供给他们的特权。通过这种方式,您的用户不必担心对数据库进行身份验证,因为您的应用程序将为他们解决这一问题。

Dustin列出了一个很好的利弊列表。我知道没有人愿意为你做出这样的决定,但基于你的标准(多个用户,都在公司域);我想不出使用SQL Server身份验证而不是Windows身份验证的唯一原因。它主要是为这样的场景而设计的。

如果你有一个域和Active Directory,你不应该甚至想到Windows身份验证以外的东西。。。。一秒钟也没有

鉴于您有一个直接连接到数据库的桌面前端……您最好的选择是使用windows auth。记住,通过这样做,用户可以绕过前端直接访问数据库。您需要授予他们所需的最低db权限。此外,您还需要使用广告安全组,而不是添加每个用户


Sql auth最适用于控制配置文件的情况…例如web应用程序。

它是应用程序中的一个可切换选项。大型组织中的IT人员往往喜欢单点登录以获得支持,而用户则喜欢单点登录以获得简单性。“•Windows提供了SQL Server登录不可用的其他密码策略。”当您单击“强制密码策略”选项时,密码策略将应用于SQL Server登录。如果我使用Windows authent,那么我不需要将每个用户都加入到用户列表中吗?@i\u am\u a\u girl我相信默认的SQL server安装将允许与服务器位于同一域上的任何人进行连接,而无需明确添加他们。服务器位于不同的位置domain@i_am_a_girl我相信这仍然有效,但是,您必须以该域上的用户身份启动应用程序,通过运行
runas/netonly/user:domainName\userName path
进行网络请求。您可以将域用户组添加到数据库的相应安全角色中。我不喜欢这样做——我倾向于创建特定于特定数据库的安全组,然后将用户(或用户组)分配给这些组。但是,我总是对我使用的SQL Server拥有域管理权限。我感谢你的建议。问题是,有时同一用户访问数据库frmo的位置不同同一网络\域上的不同位置?然后,他只需使用自己的凭据登录即可?如果使用其他凭据从另一个域访问数据库,则您必须管理称为“域信任”的内容(我认为这是正确的表达式),因此看起来我是对的sql server身份验证是我所不理解的最佳方式。是什么情况迫使您使用sql server身份验证?一旦你这么做了,你就放弃了拥有一个集成和集中的安全管理系统的能力,你肯定会后悔的!正确的。在授予用户权限时,您必须小心。但无论采用何种身份验证模式,这都是正确的。有多少数据库在运行,数百名用户被授予dbo权限,仅仅因为安装数据库和软件的人根本不关心安全性?我的公司甚至有一个!他的名字不是菲利普,是吗?;)@Philippe Grondier这对于直接访问数据库的桌面应用程序来说是正确的。你