没有SQL Server Management Studio的SQL Server集成安全性
-
11-12-2019 - |
题
我在ASP.NET应用程序中使用集成安全性,IIS和SQL Server都托管在运行Windows Server 2008 R2的同一服务器计算机上。
是否可以允许用户从网络上访问应用程序并登录用户,但不会让它们直接或通过SQL Server Management Studio访问数据库?
我正在尝试保护数据库访问,因为我的应用程序将在客户端的服务器上部署在客户端。
这是我目前正在使用的连接字符串
<add connectionString="Server=.\sqlexpress;Database=DB89akwA;Integrated Security=true" name="LocalSqlServer" providerName="System.Data.SqlClient" />
<add connectionString="Server=.\sqlexpress;Database=DB89akwA;Integrated Security=true" name="MainAppConnectionString" providerName="System.Data.SqlClient" />
.
这些是我目前正在使用的两个连接字符串,一个是用于ASP.NET身份验证,第二个是我的应用程序使用的。这些两个字符串都是相同的,也是相同的数据库。
任何建议?
解决方案
无法“安全”数据库在客户端上运行。客户的员工可以从ASP.NET连接字符串获取密码。域管理员可以始终增益访问数据库(有一个实际的MSDN文章,描述了这个过程:当系统管理员被锁定时连接到SQL Server)。
如果要隐藏您觉得您的数据库所拥有的inteleccectual属性,那么您唯一的解决方案是不在客户端前提下部署数据库(例如,例如SQL Azure等托管数据库)。
其他提示
是,完全可能的。使用集成安全性登录ASP.NET的人无法使用相同的凭据登录到SQL Server。两者都完全断开了。只有SQL Server已设置为允许它们访问。
我的建议是创建SQL登录和用户,只能让它们访问SQL Server。在您的应用程序中,当您创建连接字符串时,请勿将集成安全设置为TRUE,只需让用户输入他的SQL用户名和密码即可访问数据库。
不隶属于 StackOverflow