Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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 Server存储过程_Sql_Sql Server_Security_Sql Server 2008 - Fatal编程技术网

如何保护SQL Server存储过程

如何保护SQL Server存储过程,sql,sql-server,security,sql-server-2008,Sql,Sql Server,Security,Sql Server 2008,我们有一个应用程序,它依赖于一些非常有趣和复杂的MS SQL存储过程。现在,我们希望在共享环境中使用数据库和这些过程。是否有一种方法可以保护/加密/任何内容,使服务器管理员无法读取(复制)这些存储过程的内容 不,系统管理员总是可以获取存储过程的文本。您可以使用加密创建一个过程,但这只会保护您免受随意的窥探(严格意义上讲,这不是真正的加密,更像是混淆),因为在线上有许多资源可以向您展示如何解密 如果您有重要的业务逻辑,请将其放入CLR。这将保护您免受一些窥探,但坚定的人仍会找到方法来反编译您的资料

我们有一个应用程序,它依赖于一些非常有趣和复杂的MS SQL存储过程。现在,我们希望在共享环境中使用数据库和这些过程。是否有一种方法可以保护/加密/任何内容,使服务器管理员无法读取(复制)这些存储过程的内容

不,系统管理员总是可以获取存储过程的文本。

您可以使用加密创建一个过程
,但这只会保护您免受随意的窥探(严格意义上讲,这不是真正的加密,更像是混淆),因为在线上有许多资源可以向您展示如何解密


如果您有重要的业务逻辑,请将其放入CLR。这将保护您免受一些窥探,但坚定的人仍会找到方法来反编译您的资料。

您可以使用with ENCRYPTION子句混淆文本,但这不是真正的加密。您也可以使用CLR路径,该路径本质上调用DLL,但我认为这可能会影响性能

我认为您不应该将sa访问权授予您不太信任的任何人来查看存储过程代码,如果您的代码真的是高度机密,我想知道您为什么要首先使用共享托管环境


如果您无法退出共享环境,至少尝试获取您自己的实例,该实例只有sa可以访问。

您不信任服务器管理员提供代码吗?如果它是一个共享环境,你不应该把敏感信息放在存储过程的文本中,它应该放在你的应用程序代码中好吧,我想我希望有一些事情是不可能的。