[英]Creating temp table on logon in SQL Server
是否可以讓 SQL 服務器在用戶連接到數據庫時在特定數據庫中創建一個臨時表,以便連接用戶是唯一可以訪問該表中內容的用戶(或者更好的是,連接用戶是唯一一個甚至可以看到桌子的人)?
我嘗試使用登錄觸發器(包括使用'with execute as caller'子句),但盡管這會創建臨時表,但連接用戶永遠無法看到它/從中選擇。 所有這些都必須在 SQL 服務器內部運行,並且根本不需要用戶交互......
基本上,這是我想要支持的場景:
謝謝
第一個想法:
我可能會做的事情:
如果您的數據訪問被正確設計為打開連接-執行操作/查詢-關閉連接,則為此使用臨時表將不是正確的方法。 關閉連接的那一刻,臨時表將被破壞。 最好使用視圖或存儲過程來過濾用戶應該有權訪問的信息。 該視圖的結構很大程度上取決於用戶如何連接到數據庫。 用戶是使用自己的個人 windows 身份驗證帳戶連接到數據庫,還是像許多 web 服務器那樣通過另一個帳戶間接連接到數據庫?
IMO,更好的方法是 gbn 答案的第二個要點:一個帶有關於 session 或用戶的指示符的常見持久表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.