2008-10-24 30 views
2

在SQL Server 2005中,我想要一個名爲LimitedUser的用戶只能運行一個proc: GRANT EXEC ON [usp_RunETL] TO [LimitedUser]SQL用戶只能運行proc,但該proc可以執行任何操作

但是,該proc需要能夠做所有事情 - 更新,刪除,插入,執行..一切。我如何做到這一點,而不必將所有這些權限授予LimitedUser?

回答

3

LimitedUser只需要運行sproc的權限。他們不需要任何其他權限。

0

您只需要將GRANT EXEC授予有限的用戶。只要用戶具有存儲過程的權限,它就會忽略/覆蓋該過程內部操作的權限。

雖然這樣做我會非常小心,這聽起來像是一個很大的潛在安全漏洞。通常,您可以使用多個過程來根據需要靈活調整權限。我建議將權限分配給過程,或分配給基礎表和視圖,而不是決定只有一個超級程序。

+0

這只是一個猜測,但看着他的片名「RunETL」,看起來用戶正在觸發數據庫加載過程。這可能是複雜而漫長的。還有一些不尋常的情況。 – DOK 2008-10-24 14:35:58