我如何知道正在使用哪個使用者帳戶來執行操作(在 SQL Server 上下文中)?

我如何知道正在使用哪個使用者帳戶來執行操作(在 SQL Server 上下文中)?

例如,在安裝 SQL Server 2008 時,我必須選擇一個帳戶來執行資料庫引擎。

當我使用 SQL Server Management Studio 附加 2005 資料庫檔案時,出現權限錯誤,阻止資料庫升級。我檢查了資料庫文件,「SQLServerMSSQLUser$ComputerName$MSSQLSERVER」帳戶對該文件具有完全權限。

所以我認為 SQL Server Management Studio 是在我的使用者名稱下運行的,它沒有升級資料庫檔案的寫入權限。因此,我為我的用戶名添加了完全權限,然後它就起作用了。

這件事讓我提出了這個問題。我如何才能確定某個操作正在哪個帳戶下運行?我以為資料庫引擎會處理附加資料庫,但顯然不是!

此外,一旦附加資料庫,它似乎已從安全清單中刪除了我的用戶名!所以我想,如果我分離資料庫,我必須再次重置檔案的權限,然後才能重新附加資料庫。

答案1

看起來 SSMS 造成了這種混亂。我的猜測是,必須在對話方塊中選擇檔案意味著執行 SSMS 的帳戶也需要該檔案的權限。

只要服務帳戶擁有該檔案的權限,您就應該能夠使用 t-sql 附加資料庫。

嘗試使用sp_attach_db您需要以 sa 登入或使用設定用戶 或使用建立資料庫...用於連接

如果你真的必須使用 SSMS 和 T-SQL 的想法讓您想要放棄,然後建立使用者帳戶來執行 sql server 服務,然後使用此帳戶啟動 SSMS。

答案2

如果您知道可執行檔案的名稱,那麼任務管理器的「進程」標籤將顯示正在執行該檔案的使用者名稱。

答案3

我在這裡找到了答案:
http://www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/SQL-Server-2005/Q_22785783.html

相關的 SQL Server 文件在這裡:
http://msdn2.microsoft.com/en-us/library/ms189128.aspx
「當您分開或附加資料庫時,資料庫引擎會嘗試模擬執行操作的連線的 Windows 帳戶,以確保帳戶有權存取資料庫和日誌檔案。對於使用 SQL Server 登入的混合安全帳戶,模仿可能會失敗。 」

此外,它還明確指出:“文件訪問權限是在以下任何資料庫操作期間設置的:創建、附加、分離、修改以添加新文件、備份或恢復。”

顯然,我需要RTFM,哈哈。

相關內容