2

「ストアドプロシージャを実行する」、あなたは援助のためのGUIを使用してストアドプロシージャを実行することができます。これは、オブジェクトエクスプローラでストアドプロシージャを右クリックし、「ストアドプロシージャを実行する」または「CREATE to CREATE to NEW Query Editorウィンドウ」を選択することで実行できます。ストアドプロシージャは、SQL Server Management Studioを(SSMS)で、または「スクリプトストアドプロシージャ」

これらの結果はいずれもSPを実行するために事前に構築されたSQLクエリでは、両者はSPからのオプションのパラメータが含まれます。オプションのパラメータが隠されるようにする方法はありますか?

私は特定のSPを実行するために、SSMSを使用する一部のユーザーサポートの人々を持っている、と私は彼らが特定のオプションパラメータの値を提供する必要はありません。必要に応じて、私はSPを実行するが、ユーザーサポートの人は自分自身に提供することができるようにしたい。

私はSP自体に設定することができますいくつかのオプションがあります場合は、SQL Serverの2014年および2008 R2をタグ付けしました。

+1

別の方法でプロシージャをラップし、一部のパラメータへのアクセスを制限する方法もあります。その後、この手順の中で元のものを呼び出します。 – lad2025

+0

私はそれを考えてくれてありがとう。 –

答えて

3

あなたは別のあなたのストアドプロシージャラップできます。必要であれば、私はまたのorignal手続きへのアクセスを制限するでしょう

CREATE PROCEDURE dbo.my_wrapper_proc 
    @id INT 
AS 
BEGIN 
    EXEC dbo.my_orig_proc @id; 
END 

​​

ラッパーを。

CREATE PROCEDRUE dbo.my_orig_proc 
    @id INT, 
    ,@some_param_default INT = 10 
AS 
BEGIN 
    IF USER_NAME() = 'user_name' AND @some_param_default <> 10 
     RAISERROR('You cannot change @some_param_default value' ,16,1); 
END 

欠点::


もう一つの方法は、チェックを追加し、特定のユーザが値を上書きすることはできませんですあなたは2つの場所でパラメータ値を変更する必要があり、ユーザーが持っているならば、彼はまだpriviligeを偽装しますそれを実行することができます。

関連する問題