SQL Server 序列的權限
我所屬的 AD 組
db_owner permissions
在數據庫 LandingZone 上。我正在調試的應用程序(在我的 ID 下執行)正在執行SELECT NEXT VALUE FOR ThisSchema.ThatSequence.
我收到以下錯誤:Msg 229, Level 14, State 5, Line 6 The UPDATE permission was denied on the object 'ThatSequence', database 'LandingZone', schema 'ThisSchema'.
我想我遇到了一個
Least Privilege
問題,但生產 DBA 不同意。有什麼建議麼?
db_owner 應該擁有給定數據庫中的所有權限,因此您應該能夠毫無問題地更新該序列 - 如果您的應用程序真的在您的 UserID 下執行
1)檢查應用程序正在使用的連接字元串
如果連接字元串不包含
Integrated Security = True
orTrusted Connection = True
,那麼您必須將它們添加到連接字元串2)如果應用程序從某個 Web 伺服器(IIS Web 伺服器等)中執行,並且它包含在某個應用程序池中,您需要確保此應用程序池在您的 Windows 使用者的安全上下文中執行…
- 要驗證您的應用程序是否真的在您的 Windows 憑據下連接到 SQL Server,而應用程序連接到 DB,請查看 SQL Server 上的以下 DMV:
從 sys.dm_exec_sessions 中
選擇 * 從 sys.dm_exec_connections 中選擇 *
(這些可以通過 session_id 連結,找到您的應用程序的會話/連接並確保它在您的 Windows 憑據下執行(login_name “YourDomain\YourUserName”)
4)如果應用程序正在執行並使用您的 Windows 憑據連接到數據庫,並且您仍然有此權限問題,那麼您必須確保您的 Windows 使用者是否真的在 AD 組中,並且 AD 組確實添加到給定的 db_owner 角色數據庫…
可能的問題:您確定應用程序正在使用您的登錄名嗎?該應用程序可能使用與您不同的登錄名。檢查 CONFIG 文件以查看應用程序執行時使用的登錄名。如果它不同,那麼該登錄就是需要正確權限的登錄。