无法找到存储过程

时间:2010-06-16 07:59:01

标签: sql-server-2008 stored-procedures owner

我们使用SQL Server 2008作为我们的RDBMS,我们有一个数据库,它拥有不同的用户而不是dbo作为其所有者。

问题出在一台机器上,除非提到所有者,否则存储过程无法运行。

如果我们使用此用户连接到我们的数据库并尝试执行以下操作:

exec ourSP

我们收到“找不到mySP”错误,但这样可以正常工作:

exec user.ourSP

有人知道会导致这种奇怪的行为吗?

2 个答案:

答案 0 :(得分:0)

检查正在进行连接的用户的默认架构 - 可能使用查询

select default_schema_name from sys.database_principals where name = '~user_name~'

在用户的默认架构中搜索对象,然后搜索dbo。除非您在第二个查询中明确命名,否则不会考虑其他模式。

在此基础上,似乎a)用户设置不正确或b)您没有按照您期望的用户进行连接。

答案 1 :(得分:0)

似乎如果在服务器安全区域中将用户选为SysAdmin,则在建立与数据库的连接时将具有dbo用户名,并将其视为dbo。

相关问题