Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 保护LocalDB不受用户访问_Sql_Security_Ssms_Localdb - Fatal编程技术网

Sql 保护LocalDB不受用户访问

Sql 保护LocalDB不受用户访问,sql,security,ssms,localdb,Sql,Security,Ssms,Localdb,我正在考虑使用SQLLocalDB作为客户端数据库,它将取代在.NET4中开发的内部应用程序中当前的SQLCE3.5数据库 我遇到了一个问题,我不知道如何解决,这就是LocalDB实例的安全设置 如果我在.net中设置脚本以创建私有LocalDB实例,例如(LocalDB)\T1,然后在该实例中创建一个新数据库并添加SQL用户帐户+密码(非域帐户),那么如何停止本地windows用户(如我自己的AD帐户)是否具有使用SSMS访问“T1”实例+数据库的管理员级别权限 我可以看到这样一个场景:我们部

我正在考虑使用SQLLocalDB作为客户端数据库,它将取代在.NET4中开发的内部应用程序中当前的SQLCE3.5数据库

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

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

我可以看到这样一个场景:我们部署应用程序,然后我们有一些熟悉IT的用户四处窥探,决定安装SSM并使用他们的windows帐户连接到(localdb)\T1,这将使他/她能够完全访问数据库,这正是我试图阻止的

我们的一些员工在没有连接到域的情况下远程工作,因此我们授予他们pc的本地管理员权限,以便他们可以安装软件,因此即使我可以阻止他们指定的windows登录名,也不会阻止他们设置新的本地管理员帐户并使用该帐户登录,打开SSMS,然后访问数据库


任何关于这方面的建议都将不胜感激

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

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

  • 创建新的SQL Server用户并将sysadmin服务器角色分配给该帐户。关闭SSM并使用新凭据登录。或者简单地使用sa帐户(不是很好的做法,但在这种情况下是可以的)

  • 转到“安全-登录”并从本地管理员中删除系统管理员角色。另外,签入用户映射并从本地管理员处“拿走”所有权限

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

    安装数据库并保护它的安全取决于您——将权限分配给您选择的用户

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


    你也可以考虑在SQLServer中使用。

    简而言之,你不能——如果他们有管理员权限,那么他们可以做任何事情:谢谢科南,那就行了。我使用sysadmin角色设置了SQL用户帐户,这样我就可以阻止windows本地管理员帐户。您仍然可以登录,这并不难,您可以登录并更改用户密码。是否有视频,bcoz我没有找到本地数据库的选项2。