2009-06-03 34 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类型提供了更丰富的接口任务。