SQL Server 2005 では、LimitedUser という名前のユーザーが 1 つのプロシージャしか実行できないようにしたい: GRANT EXEC ON [usp_RunETL] TO [LimitedUser]
ただし、その proc は、UPDATE、DELETE、INSERT、EXEC など、すべてを実行できる必要があります。これらすべての権限を LimitedUser に付与することなく、どうすればそれを行うことができますか?
SQL Server 2005 では、LimitedUser という名前のユーザーが 1 つのプロシージャしか実行できないようにしたい: GRANT EXEC ON [usp_RunETL] TO [LimitedUser]
ただし、その proc は、UPDATE、DELETE、INSERT、EXEC など、すべてを実行できる必要があります。これらすべての権限を LimitedUser に付与することなく、どうすればそれを行うことができますか?
LimitedUser は、sproc を実行する権限のみが必要です。他の権限は必要ありません。
限定されたユーザーに GRANT EXEC を実行するだけで済みます。ユーザーがストアド プロシージャへのアクセス許可を持っている限り、プロシージャ内の操作に対するアクセス許可は無視または上書きされます。
ただし、これを行うには非常に注意が必要ですが、これは大きな潜在的なセキュリティ ホールのように思えます。通常、複数の手順を使用して、必要に応じて権限を柔軟に調整できます。スーパープロシージャが 1 つしかないことを決定するのではなく、プロシージャ、または基になるテーブルとビューにアクセス許可を割り当てることをお勧めします。