如何保护SQL Server存储过程
我们有一个应用程序,它依赖于一些非常有趣和复杂的MS SQL存储过程。现在,我们希望在共享环境中使用数据库和这些过程。是否有一种方法可以保护/加密/任何内容,使服务器管理员无法读取(复制)这些存储过程的内容 不,系统管理员总是可以获取存储过程的文本。您可以使用加密创建一个过程如何保护SQL Server存储过程,sql,sql-server,security,sql-server-2008,Sql,Sql Server,Security,Sql Server 2008,我们有一个应用程序,它依赖于一些非常有趣和复杂的MS SQL存储过程。现在,我们希望在共享环境中使用数据库和这些过程。是否有一种方法可以保护/加密/任何内容,使服务器管理员无法读取(复制)这些存储过程的内容 不,系统管理员总是可以获取存储过程的文本。您可以使用加密创建一个过程,但这只会保护您免受随意的窥探(严格意义上讲,这不是真正的加密,更像是混淆),因为在线上有许多资源可以向您展示如何解密 如果您有重要的业务逻辑,请将其放入CLR。这将保护您免受一些窥探,但坚定的人仍会找到方法来反编译您的资料
,但这只会保护您免受随意的窥探(严格意义上讲,这不是真正的加密,更像是混淆),因为在线上有许多资源可以向您展示如何解密
如果您有重要的业务逻辑,请将其放入CLR。这将保护您免受一些窥探,但坚定的人仍会找到方法来反编译您的资料。您可以使用with ENCRYPTION子句混淆文本,但这不是真正的加密。您也可以使用CLR路径,该路径本质上调用DLL,但我认为这可能会影响性能
我认为您不应该将sa访问权授予您不太信任的任何人来查看存储过程代码,如果您的代码真的是高度机密,我想知道您为什么要首先使用共享托管环境
如果您无法退出共享环境,至少尝试获取您自己的实例,该实例只有sa可以访问。您不信任服务器管理员提供代码吗?如果它是一个共享环境,你不应该把敏感信息放在存储过程的文本中,它应该放在你的应用程序代码中好吧,我想我希望有一些事情是不可能的。