我想在Azure Marketplace上发布通用VM的映像。要为其创建映像的VM包括连接到本地SQL Server的ASP.NET MVC应用程序。
我想禁止访问我的应用程序的数据库给从提供的映像创建VM的用户,这样他们就无法在数据库中看到存储过程。
我正在考虑禁用SQL身份验证到SQL服务器并添加可以访问服务器的superadmin用户。但是,在这种情况下,我需要将superadmin用户的用户名和密码放在我的web.config文件中,从而使所有用户都可以看到它。
在VM映像上提供应用程序时,是否还有其他可能的解决方案来限制对应用程序数据库的访问,或者更具体地说是数据库中的存储过程?
这不会有帮助,你可以随时强制进入sql server(因为你控制了vm)。所以这真的没什么意义。
您可以尝试加密存储过程,如下所示,但有一些第三方工具可以解密它。
CREATE PROCEDURE YourSP_WithEncryption WITH ENCRYPTION
AS
BEGIN
-- START: Proprietary Business Logic
--
--
--
--
-- END: Proprietary Business Logic
SELECT 'From ENCRYPTED Stored Procedure'
END
GO
或者,有一些第三方工具,如SqlShield,可以为您的存储过程提供防黑客加密。它还可以加密视图和触发器。