我遇到了一個經常性問題,即用戶的TEMPDB中的CREATE SYNONYM權限正在丟失。是否有這些權限似乎永久不變的原因?TEMPDB中用戶的CREATE SYNONYM權限的重複丟失
我得到的錯誤:
> System.Data.SqlClient.SqlException (0x80131904): CREATE SYNONYM
> permission denied in database 'tempdb'
我遇到了一個經常性問題,即用戶的TEMPDB中的CREATE SYNONYM權限正在丟失。是否有這些權限似乎永久不變的原因?TEMPDB中用戶的CREATE SYNONYM權限的重複丟失
我得到的錯誤:
> System.Data.SqlClient.SqlException (0x80131904): CREATE SYNONYM
> permission denied in database 'tempdb'
我離開你的評論,但你可以做的是以下
創建在master數據庫中一個進程,該進程內給予的權限爲tempdb(你可以使用使用tempdb在proc如果你使用動態sql)
然後標記PROC在啓動時運行
exec sp_procoption N'MyProcName', 'startup', 'on'
現在每次重新啓動SQL Server,該PROC將運行並賦予權限
另請參見List all stored procedures that run at startup in SQL Server
該鏈接是一個體面的解釋,謝謝。 – tbone
tempdb數據庫在服務器每次重新啓動時創建的模型數據庫的副本。我的猜測是,當您向用戶授予權限並收到此錯誤消息時,會發生服務器重新啓動。也就是說,您可以授予模型中的權限,並且在服務器重新啓動時它將在tempdb中,或者您可以執行類似於創建啓動存儲過程以授予tempdb中的權限的內容。
tempdb是從頭開始重新創建的sql server重新啓動,不管有什麼不會再存在了 – SQLMenace