保护LocalDB免受用户访问

时间:2014-11-25 23:06:47

标签: sql security ssms localdb

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

我遇到了一个问题,我不确定如何解决这个问题以及LocalDB实例的安全设置。

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

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

我们的一些员工远程工作,没有连接到域,所以我们给他们的电脑本地管理员权限,以便他们可以安装软件,所以即使我可以阻止他们分配的Windows登录名,也没有什么可以阻止他们设置一个新的本地管理员帐户并使用该帐户登录,打开SSMS然后访问数据库。

对此的任何指示都将非常感谢!

1 个答案:

答案 0 :(得分:1)

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

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

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

  2. 转到"安全 - 登录"并从本地管理员中删除sysadmin角色。此外,检查用户映射并采取所有权利"远离"来自本地管理员。

  3. 作为测试,尝试以本地管理员身份登录,我猜您无法登录到服务器,因为没有" home"该用户的数据库。但即使您可以登录,它也只有" public"作用。

    由您来安装数据库并加以保护 - 为您选择的用户分配权限。

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

    您还可以考虑在SQL Server中使用application roles