我正在考虑使用 SQL LocalDB 作为客户端数据库,它将取代 .net 4 中开发的内部应用程序中当前的 SQL CE 3.5 数据库。
我遇到了一个问题,我不确定如何解决,这与 LocalDB 实例的安全设置有关。
如果我在 .net 内设置一个脚本来创建私有 LocalDB 实例,例如(localdb)\T1,然后在该实例中创建一个新数据库并添加一个SQL用户帐户+密码(非域帐户),如何阻止具有管理员级别权限的本地Windows用户(例如我自己的AD帐户)访问使用 SSMS 的“T1”实例 + 数据库?
我可以看到一个场景,我们部署应用程序,然后我们有一些精通 IT 的用户四处窥探并决定安装 SSMS 并使用他们的 Windows 帐户连接到 (localdb)\T1,这将给予他/她完全访问权限到数据库,这正是我试图阻止发生的事情。
我们的一些员工在没有连接到域的情况下远程工作,因此我们为他们的电脑提供本地管理员权限,以便他们可以安装软件,因此即使我可以阻止他们指定的 Windows 登录名,也没有什么可以阻止他们设置新的本地管理员帐户并使用该帐户登录,打开 SSMS 然后访问数据库。
对此的任何指示将不胜感激!
事实上,它不应该那么难。使用本地管理员帐户在客户端计算机上安装 SQL Server。为了让您的生活更轻松,请使用混合身份验证。
安装实例后,本地管理员帐户应该分配有 sysadmin 服务器角色(这是正常的安全设置)。现在,使用以下命令:
创建新的 SQL Server 用户并将 sysadmin 服务器角色分配给该帐户。关闭 SSMS 并使用新凭据登录。或者简单地使用 sa 帐户(不是很好的做法,但在这种情况下没关系)。
转到“安全 - 登录”并从本地管理员中删除系统管理员角色。另外,检查用户映射并从本地管理员“夺走”所有权限。
作为测试,尝试以本地管理员身份登录,我想您将无法登录服务器,因为该用户没有“主”数据库。但即使可以登录,也只有“公共”角色。
由您来安装数据库并保护它 - 向您选择的用户分配权限。
关于您担心本地管理员可以再次安装 MSSQL:他/她可以安装它,但这将是另一个实例。该实例对您实例中的用户一无所知,因此您应该是安全的。
您还可以考虑使用应用程序角色在 SQL 服务器中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)