在SQL Server Management Studio(SSMS)中,您可以使用GUI执行存储过程以获得帮助。这可以通过右键单击对象资源管理器中的存储过程并选择"执行存储过程"或"脚本存储过程为>创建到>新查询编辑器窗口"。
这两个都导致执行SP的预构建SQL查询,并且它们都包含来自SP的可选参数。有没有办法让它成为可选参数"隐藏"?
我有一些使用SSMS运行某些SP的用户支持人员,我不希望他们为某些可选参数提供值。如果需要,我希望能够在运行SP时自己提供它们,而不是用户支持人员。
我已经标记了SQL Server 2014和2008 R2,以防我可以在SP中设置一些选项。
答案 0 :(得分:3)
您可以使用另一个包装存储过程:
valid.file
打包机:
CREATE PROCEDURE dbo.my_orig_proc
@id INT
,@some_param_default INT = 10
AS
BEGIN
...
END
如有必要,我还会限制访问原始程序。
另一种方法是添加支票,不允许特定用户覆盖价值:
CREATE PROCEDURE dbo.my_wrapper_proc
@id INT
AS
BEGIN
EXEC dbo.my_orig_proc @id;
END
缺点:您需要在两个位置更改参数值,如果用户具有模拟权限,他仍然可以执行它。