【问题标题】:Protect LocalDB from user access保护 LocalDB 免受用户访问
【发布时间】:2014-11-25 23:06:46
【问题描述】:

我正在考虑使用 SQL LocalDB 作为客户端数据库,它将替换 .net 4 开发的内部应用程序中的当前 SQL CE 3.5 数据库。

我遇到了一个不知道如何解决的问题,这与 LocalDB 实例的安全设置有关。

如果我在 .net 中设置一个脚本来创建一个私有 LocalDB 实例,例如(localdb)\T1,然后在该实例中创建一个新数据库并添加一个 SQL 用户帐户 + 密码(非域帐户),如何阻止具有管理员级别权限的本地 Windows 用户(如我自己的 AD 帐户)访问'T1' 实例 + 使用 SSMS 的数据库?

我可以看到我们部署应用程序的场景,然后我们有一些精通 IT 的用户四处窥探并决定安装 SSMS 并使用他们的 Windows 帐户连接到 (localdb)\T1,这会给他/她对数据库的完全访问权限,这正是我试图阻止发生的事情。

我们的一些员工在没有连接到域的情况下远程工作,因此我们为他们提供了对其 PC 的本地管理员权限,以便他们可以安装软件,因此即使我可以阻止他们分配的 Windows 登录名,也没有什么可以阻止他们设置一个新的本地管理员帐户并使用该帐户登录,打开 SSMS 然后访问数据库。

任何关于此的指针将不胜感激!

【问题讨论】:

标签: sql security ssms localdb


【解决方案1】:

事实上,它不应该那么难。使用本地管理员帐户在客户端计算机上安装 SQL Server。为了让您的生活更轻松,请使用混合身份验证。

安装实例后,应为本地管理员帐户分配系统管理员服务器角色(这是正常的安全设置)。现在,使用以下内容:

  1. 创建新的 SQL Server 用户并将 sysadmin 服务器角色分配给该帐户。关闭 SSMS 并使用新凭据登录。或者干脆使用 sa 帐户(不是很好的做法,但在这种情况下没关系)。

  2. 转到“安全 - 登录”并从本地管理员中删除 sysadmin 角色。此外,签入用户映射并从本地管理员“带走”所有权限。

作为测试,尝试以本地管理员身份登录,我猜您将无法登录服务器,因为该用户没有“主”数据库。但即使你可以登录,它也只有“公共”角色。

安装和保护数据库由您决定 - 为您选择的用户分配权限。

关于您担心本地管理员可以再次安装 MSSQL:他/她可以安装它,但它会是另一个实例。该实例对您实例中的用户一无所知,因此您应该是安全的。

您也可以考虑在 SQL server 中使用application roles

【讨论】:

  • 感谢凯南,成功了。我使用 sysadmin 角色设置了 SQL 用户帐户,这样我就可以阻止 Windows 本地管理员帐户。
  • 还是可以进去的,没那么难,just restart the SQL server in single user mode可以登录改用户密码。
  • 有没有视频,因为我没有找到本地数据库的选项 2。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-19
  • 2016-06-23
  • 2013-01-03
  • 2020-09-06
  • 2012-05-21
  • 1970-01-01
相关资源
最近更新 更多