Sql*_*yan 7 sql-server sql-server-2012
我们的网络上有一些应用程序(在我之前)在其 SQL Server 连接字符串中使用 SA 帐户。它在源代码中是硬编码的,无论出于何种原因,我们都无法更改它 - 我的问题不是我们为什么要更改它,而是解决它。
我正在考虑将 SA 帐户重命名为其他名称(例如“SysAccount”或类似名称,并为其提供新密码),然后使用旧密码创建一个名为“SA”的新帐户并授予其适用于应用程序的权限(显然不是 sysadmin 角色的成员)。这样做有什么陷阱吗?如果名为 SA 的帐户实际上不是系统管理员,SQL Server 是否会遇到已知问题?
我假设因为我只是重命名帐户,所以我是安全的 - 它的 uid 仍然为 0x01,我已经测试过了,它在物理上是可行的,并且在测试中似乎可以正常工作,但我想确保我并没有忽视任何会因此而明显破裂的东西。如果它破坏了某些东西,我总是可以删除新的 SA 并将旧的 SA 重命名回以消除损坏,但希望避免尝试和失败。
我正在使用 SQL Server 2012,但我怀疑相同的答案将适用于任何现代版本。我已经看到了从 2005 年升级到 2008 年的错误,如果你这样做了,但我想这个问题早就解决了。
它可以重命名。它通常被认为是安全的最佳实践,但如果您不退回代理服务或更改作业所有者,则可能会出现SQL 代理后果,我也可以找到有关它使Server 2008 升级失败的报告。
这足以让我不想费心重命名它。我说分配一个复杂的密码并禁用登录就足够了,这通常是一个更好的选择,因为它实际上关闭了漏洞而不是仅仅混淆它。混淆为您带来的安全性很少。以后如果真的需要SQL授权系统管理员,就为它新建一个账号。这不是特别困难。您具有与重命名相同的攻击面,而不必记住 SID 0x01 不再是 sa(即使它仍然是 sa)。而且,当然,由于 SID 从未真正更改过,因此不难找到哪个帐户是 SID 0x01(或者就此而言是 sysadmin 角色的成员)。当然,如果可能的话,甚至不要使用混合模式。
归档时间: |
|
查看次数: |
5570 次 |
最近记录: |