2011-08-09 74 views

回答

-2

您只需要SQLServer上的datareader/datawriter。

+0

我不需要爲存儲過程設置執行權限嗎? – user884140

+0

是..作爲DataReader/Datawriter ... – cgcarter1

0

這取決於您是選擇持續模式還是臨時表模式。在第一種情況下,它是非常簡單的:

在持續的情況下,它足以授予 執行權限的程序,因爲訪問表的工作原理是一個 所有權鏈,即如果車主的手段的程序還擁有由程序訪問的表 ,訪問這些表時不會執行額外的檢查 。在ASPState數據庫中,所有對象的所有者也是數據庫所有者,即在運行Aspnet_regsql工具時 創建ASPState數據庫的帳戶。 在非永久性模式下,表格不在ASPState數據庫中,但位於tempdb中,因此沒有直接的 所有權鏈,因此需要執行一個步驟: 跨數據庫所有權鏈具有成立。

查看http://blogs.msdn.com/b/hanspo/archive/2011/01/10/hardening-an-asp-net-session-state-database.aspx瞭解詳情(關於兩種模式)。

1

我知道這個問題有點老,但我沒有看到正確的答案。這是我們爲我們創建的角色授予的替代內置ASPState帳戶的角色。出於安全原因,我們不希望我們的網絡應用使用的帳戶擁有.dbo權限。

GRANT EXECUTE ON dbo.TempReleaseStateItemExclusive TO ASPState_20 
GRANT EXECUTE ON dbo.TempInsertUninitializedItem TO ASPState_20 
GRANT EXECUTE ON dbo.TempInsertStateItemShort TO ASPState_20 
GRANT EXECUTE ON dbo.TempInsertStateItemLong TO ASPState_20 
GRANT EXECUTE ON dbo.TempUpdateStateItemShort TO ASPState_20 
GRANT EXECUTE ON dbo.TempUpdateStateItemShortNullLong TO ASPState_20 
GRANT EXECUTE ON dbo.TempUpdateStateItemLong TO ASPState_20 
GRANT EXECUTE ON dbo.TempUpdateStateItemLongNullShort TO ASPState_20 
GRANT EXECUTE ON dbo.TempRemoveStateItem TO ASPState_20 
GRANT EXECUTE ON dbo.TempResetTimeout TO ASPState_20 
GRANT EXECUTE ON dbo.DeleteExpiredSessions TO ASPState_20 
GRANT SELECT ON dbo.ASPStateTempSessions TO ASPState_20 
GRANT SELECT ON dbo.ASPStateTempApplications TO ASPState_20 
GRANT EXECUTE ON dbo.GetMajorVersion TO ASPState_20 
GRANT EXECUTE ON dbo.CreateTempTables TO ASPState_20 
GRANT EXECUTE ON dbo.TempGetVersion TO ASPState_20 
GRANT EXECUTE ON dbo.GetHashCode TO ASPState_20 
GRANT EXECUTE ON dbo.TempGetAppID TO ASPState_20 
GRANT EXECUTE ON dbo.TempGetStateItem TO ASPState_20 
GRANT EXECUTE ON dbo.TempGetStateItem2 TO ASPState_20 
GRANT EXECUTE ON dbo.TempGetStateItem3 TO ASPState_20 
GRANT EXECUTE ON dbo.TempGetStateItemExclusive TO ASPState_20 
GRANT EXECUTE ON dbo.TempGetStateItemExclusive2 TO ASPState_20 
GRANT EXECUTE ON dbo.TempGetStateItemExclusive3 TO ASPState_20 
GRANT EXECUTE ON TYPE ::dbo.tSessionId TO ASPState_20 
GRANT EXECUTE ON TYPE ::dbo.tAppName TO ASPState_20 
GRANT EXECUTE ON TYPE ::dbo.tSessionItemShort TO ASPState_20 
GRANT EXECUTE ON TYPE ::dbo.tSessionItemLong TO ASPState_20 
GRANT EXECUTE ON TYPE ::dbo.tTextPtr TO ASPState_20