Security

數據庫“主”錯誤中的 CREATE DATABASE 權限被拒絕

  • January 30, 2012

我正在使用一種工具,作為自動化步驟之一,它將數據庫從我的文件系統附加到我的本地 SQL Express 2008 實例。該工具需要以 sysadmin 伺服器角色登錄,為此我創建了一個新的虛擬登錄以進行測試。當我使用這個新的登錄名登錄到 Management Studio 並執行確切的查詢來附加數據庫時,數據庫連接得很好。但是,當我執行該工具(它是一個可執行程序)時,我可以打開該工具的調試面板以查看以下錯誤:

數據庫“主”中的 CREATE DATABASE 權限被拒絕

通過程序執行的 T-SQL 是:

USE [master]
GO
CREATE DATABASE [BBB_core] ON
( FILENAME = N'c:\inetpub\wwwroot\BBB\Databases\sitecore.core.Mdf' ),
( FILENAME = N'c:\inetpub\wwwroot\BBB\Databases\sitecore.core.Ldf' )
FOR ATTACH
GO

USE [master]
GO
CREATE DATABASE [BBB_master] ON
( FILENAME = N'c:\inetpub\wwwroot\BBB\Databases\sitecore.master.Mdf' ),
( FILENAME = N'c:\inetpub\wwwroot\BBB\Databases\sitecore.master.Ldf' )
FOR ATTACH
GO

USE [master]
GO
CREATE DATABASE [BBB_web] ON
( FILENAME = N'c:\inetpub\wwwroot\BBB\Databases\sitecore.web.Mdf' ),
( FILENAME = N'c:\inetpub\wwwroot\BBB\Databases\sitecore.web.Ldf' )
FOR ATTACH
GO

我的想法是我的 Windows 使用者無法在主數據庫上執行此查詢。我的 SQL 實例上的登錄名中確實有我的本地 Windows 使用者(域使用者),並且它是系統管理員的成員。我也嘗試過以管理員身份執行程序(右鍵點擊>以管理員身份執行)。我知道查詢有效,但它似乎在程序的上下文中不起作用。我錯過了什麼嗎?

我在 Windows 7 x64 上使用 SQL Express 2008

提前感謝您的幫助。

如果您可以在您的域帳戶的上下文中成功執行您發布的程式碼,那麼該工具很可能正在以不同的使用者身份連接到您的數據庫。你能檢查它使用的連接字元串嗎?如果是這樣,請檢查它是否使用集成身份驗證或使用使用者 ID/密碼組合併在那里相應地修改內容。更改連接字元串以使用集成身份驗證或您作為測試創建的 SQL 登錄。

引用自:https://dba.stackexchange.com/questions/11922