2009-06-03 128 views
0

我有一個帶有SQL Server 2005後端的Access 2007項目。然而,從內部訪問創建一個新的存儲過程時,談到了一個錯誤:從Access 2007創建SQL Server存儲過程 - 更改模式

ADO error: The specific schema name DOMAIN\username either does not exist or you do not have permission to use it

你怎麼能創建使用「DBO」的架構,而不是存儲過程?存儲過程屬性對話框具有設置爲用戶名的「所有者」下拉列表,即使用戶處於「db_owner」角色,也不能將其更改爲dbo。

+0

誰(哪位用戶)正在運行Access前端應用程序並將T-SQL查詢發送到服務器? – 2009-06-03 12:25:07

+0

有幾個用戶是數據庫所有者(創建存儲過程,表單等)。其他用戶將受到更多限制 - 僅查看數據並執行某些存儲過程 – SamWM 2009-06-03 13:22:49

回答

0

管理解決它。如果您使用戶成爲數據庫的所有者(而不是具有db_owner角色的用戶),那麼當您在Access 2007中創建存儲過程時,它會在dbo模式下而不是DOMAIN \ username下創建它。

步驟這樣做(在Management Studio):

  • 右擊數據庫,選擇屬性
  • 單擊文件
  • 更改所有者在文本框中
  • OK確認

缺點 - db_owner角色下的其他用戶仍然會附加其用戶名。所以必須爲這些用戶創建模式。

0

好的我會讓人們在SQL Server上創建特效,而不是在那裏添加dbo到create proc代碼。如果您無法做到這一點,也許您可​​以運行代碼以在使用sp_changeobjectowner創建後更改所有者。

0

嘗試使用戶成爲dbo模式而不是db_owner的成員。這就是我的做法。另外,您可能需要查看特定的SQL Server管理工具(隨SQL Server 2005提供的Management Studio或免費下載的2005或2008 Express版本),這爲DDL類型提供了更豐富的接口任務。