我们在一家小型制造公司运行SAP Business 1/4 Shift Edition。执行安装/实现的咨询公司使用"sa“id/pass最初连接到数据库以获得公司列表。从那时起,我必须假设它是用于将客户端软件连接到数据库的sa /pass。这样做合适吗?我不知道这些数据存储在哪里...作为ODBC连接?直接在注册表的某个地方吗?安全吗?在数据库安全性中设置用户的网络ID,然后使用“可信连接”设置是否更好?或者,大多数人是否会在数据库中为每个用户创建单独的登录,并在客户端设置中使用该登录?
似乎最简单的方法是将用户的网络登录添加到sql server安全性中,这样他们就可以使用“可信连接”……但是这不是允许任何软件从那台机器连接到数据库吗?
所以不管怎样:设置它的最佳实践是什么?
发布于 2008-12-17 03:10:14
sa的使用听起来像是灾难的秘诀。
在我见过的大多数安全模型中,无论您如何连接,第一个查找SP、视图或表对所有经过身份验证的用户都是可读访问的。即使应用程序具有专用登录,它也不是sa。
由于不了解有关SAP限制的更多信息,我无法确定,但我们总是倾向于使用Windows身份验证和Windows Active Directory组。SQL Server角色中允许使用这些组。因此,所有管理都是在AD级别完成的。数据库根据这些角色被锁定-即使应用程序具有SQL Server登录或域登录,它也将位于我们创建、命名并适当授予权限的数据库角色中。
发布于 2008-12-18 12:53:05
这是非常错误的,sa帐户不应该用于一般用途。
应使用单独的(特定于应用程序的)用户帐户,以便:
我也同意Cade Roux的评论。
发布于 2008-12-19 10:14:31
Cade..。我不相信你能给windows中的“应用程序”分配角色……
我认为他的意思是将角色分配给用户,然后让应用程序使用该用户帐户。
所以你的意思是,如果我的userId是"MYDOMAIN/nick"...然后,在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上,您将拥有:
SQL或AD user)
在应用程序级别使用这些自定义用户名会覆盖AD身份验证。
这也意味着,如果你在两个程序中的一个有问题,或者程序锁定了用户帐户等,那么很容易诊断出来。
我了解到
客户端对其连接信息进行加密,并将其存储在注册表中。
你说的是连接的哪一部分?我不知道有任何东西以这种方式存储。
这能回答你的问题吗?
请投票支持有帮助的答案;-)
https://stackoverflow.com/questions/361062
复制相似问题