1

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

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

所以无论如何:设置它的最佳实践是什么?

4

4 回答 4

1

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

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

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

于 2008-12-17T03:10:14.250 回答
0

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

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

于 2008-12-28T17:07:17.463 回答
0

那是非常错误的,sa帐户不应该用于一般用途。

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

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

我也同意 Cade Roux 的评论。

于 2008-12-18T12:53:05.117 回答
0

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

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

所以你的意思是,如果我有一个“MYDOMAIN/nick”的用户 ID......那么在 AD 中你会将 MYDOMAIN/nick 分配给一个与使用同一个应用程序的其他人一起的组,然后在 SQL Server 中你会将该组添加到安全性并为其分配角色?

正确的。

我担心的是,如果我使用 MYDOMAIN/nick 登录我的机器......这会将我的整个机器激活为对 sql server 的“信任”(通过 windows 验证)......所以这意味着我可以启动 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 客户端会加密其连接信息并将其存储在注册表中。

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

这能回答你的问题吗?

请投票给有用的答案;-)

于 2008-12-19T10:14:31.100 回答