【问题标题】:When connecting SAP Business One to SQL Server 2005, what is the将 SAP Business One 连接到 SQL Server 2005 时,什么是
【发布时间】:2012-09-11 04:06:44
【问题描述】:

我们在一家小型制造公司运行 SAP Business One - Fourth Shift Edition。进来做安装/实施的咨询公司使用“sa”id/pass 初始连接数据库获取公司列表。从那时起,我必须假设它是用于将客户端软件连接到数据库的 sa id/pass。这合适吗?我不知道这些数据存储在哪里...作为 ODBC 连接?直接在注册表某处?它安全吗?在数据库安全中设置用户网络 ID,然后使用“受信任的连接”设置会更好吗?还是大多数人会在数据库中为每个用户创建一个单独的登录名并在客户端设置中使用它?

似乎最简单的方法是将用户网络登录添加到 sql server 安全性,以便他们可以使用“受信任的连接”...但是这样就不允许任何软件从该机器连接到数据库?

不管怎样:设置它的最佳实践是什么?

【问题讨论】:

    标签: sql-server sql-server-2005 database-connection sapb1


    【解决方案1】:

    sa 的用法听起来像是灾难的秘诀。

    在我见过的大多数安全模型中,无论您如何连接,所有经过身份验证的用户都可以读取第一个查找 SP、视图或表。即使应用程序有一个专用的登录,它也不是。

    在不了解 SAP 限制的情况下,我无法确定,但我们总是倾向于使用 Windows 身份验证和 Windows Active Directory 组。 SQL Server 角色中允许这些组。因此,所有管理都在 AD 级别完成。数据库根据这些角色被锁定 - 即使应用程序具有 SQL Server 登录名或域登录名,它也将处于我们创建、命名和适当授予权限的数据库角色之一。

    【讨论】:

      【解决方案2】:

      这是非常错误的,sa账号不应该用于一般用途。

      应使用单独的(“应用程序”特定的)用户帐户,以便:

      • 可以在每个用户(应用程序)级别应用安全性
      • 如果应用程序出现任何问题(例如,它锁定了用户帐户),只影响一个帐户,并且很容易诊断问题

      我也同意 Cade Roux 的 cmets。

      【讨论】:

        【解决方案3】:

        Cade...我不相信您能够在 Windows 中为“应用程序”赋予角色...

        我认为他的意思是您将角色分配给用户,然后让应用程序使用该用户帐户。

        所以您的意思是,如果我的 userId 为“MYDOMAIN/nick”...那么在 AD 中,您可以将 MYDOMAIN/nick 分配给使用同一应用程序的其他人的组,然后在 SQL 中您会将该组添加到安全服务器并为其分配角色吗?

        正确。

        我担心的是,如果我使用 MYDOMAIN/nick 登录我的机器...这会将我的整个机器激活为对 sql server 的“信任”(通过 windows authenticationatino)...所以这意味着我可以启动 Visual Studio 并开始构建我想要的任何应用程序并可能直接连接到数据库并做任何我想做的事情......这也意味着我可以下载/安装的任何其他应用程序都可能访问该数据库......对吗?

        是的,这是正确的。因为您(MYDOMAIN/nick)受到信任。 SQL Server 不知道您在 PC 上运行什么。

        但是回到你原来的问题,你正在谈论的程序不应该连接到 MYDOMAIN/nick,它应该连接到用户名 MYDOMAIN/mycustomprogram。这是仅用于该程序的用户帐户。您可以从 PC 上运行该程序,但在这种情况下,它仍将使用用户名 MYDOMAIN/mycustomprogram,而不是 MYDOMAIN/nick。

        然后您可以在您的 PC 上安装第二个程序,该程序应使用第二个用户名对 SQL 服务器进行身份验证,例如MYDOMAIN/mycustomprogram2

        因此,在同一台 PC 上,您将拥有:

        • MYDOMAIN/尼克 (AD)
        • MYDOMAIN/mycustomprogram(SQL 或 AD 用户)
        • MYDOMAIN/mycustomprogram2(SQL 或 AD 用户)

        在应用程序级别使用这些自定义用户名会覆盖 AD 身份验证。

        这也意味着如果您对这两个程序之一有问题,或者该程序锁定了用户帐户等,则很容易诊断。

        我了解到 SAP 客户端会加密其连接信息并将其存储在注册表中。

        您指的是连接的哪一部分?我不知道有任何东西以这种方式存储。

        这能回答你的问题吗?

        请为有帮助的答案投票 ;-)

        【讨论】:

          【解决方案4】:

          我认为这实际上取决于您愿意提供/维护的安全级别。在 SAP Business One 中,创建新登录需要添加某些权限,例如授予数据库和 SBO-Common 的 db_creator 权限,或者访问读/写表和对存储过程的特定访问权限,这有点麻烦。

          无论如何,为用户保留 sa 登录确实是一种不好的做法,但是您可以创建其他用户并在启动应用程序时更改登录用户。软件 CD 中有安装指南,您可以在其中通过分步指南查看该信息。如果您没有,请询​​问您的合作伙伴!

          【讨论】:

            猜你喜欢
            • 2017-07-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-12-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多