我想在Azure市场上发布通用VM的映像。要为其创建映像的VM包括一个ASP.NET MVC应用程序,该应用程序连接到本地SQL Server。
我想禁止从提供的映像创建VM的用户访问我的应用程序数据库,以使他们无法看到数据库中的存储过程。
我正在考虑对SQL服务器禁用Windows身份验证,并添加可以访问该服务器的超级管理员用户。但是,在这种情况下,我需要将超级管理员用户的用户名和密码放在我的web.config文件中,从而使其对所有用户可见。
在VM映像上提供应用程序时,是否还有其他可能的解决方案来限制对应用程序数据库或更具体地数据库中存储过程的访问?
答案 0 :(得分:1)
那无济于事,您总是可以强制进入sql server(因为您控制着vm)。所以这真的没有意义。
答案 1 :(得分:0)
您可以尝试如下所示对存储过程进行加密,但是有一些第三方工具可以对其进行解密。
CREATE PROCEDURE YourSP_WithEncryption WITH ENCRYPTION
AS
BEGIN
-- START: Proprietary Business Logic
--
--
--
--
-- END: Proprietary Business Logic
SELECT 'From ENCRYPTED Stored Procedure'
END
GO
或者,有一些第三方工具,例如SqlShield,可以为您的存储过程提供防黑客攻击的加密。它还可以加密视图和触发器。