Linked Server: EXECUTE permission denied on object 'xp_prop_oledb_provider', database 'master', owner 'dbo'
2014-06-18 09:08 潇湘隐者 阅读(2838) 评论(0) 编辑 收藏 举报问题出现环境:
使用SQL Server Management Studio 2008 连接到SQL Server 2000的数据库,点击其中一个Oracle链接服务器,单击“目录”时,Linked Server弹出如下错误信息.使用另外一个拥有sysadmin角色的账号登录检查发现没有此类问题。
错误详细信息如下所示:有用的信息只有一条:EXECUTE permission denied on object 'xp_prop_oledb_provider', database 'master', owner 'dbo'. (Microsoft SQL Server,错误: 229)
1: 标题: Microsoft SQL Server Management Studio
2: ------------------------------
3: 无法为该请求检索数据。 (Microsoft.SqlServer.Management.Sdk.Sfc)
4: 有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&;LinkId=20476
5: ------------------------------
6: 其他信息:
7: 执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)
8: ------------------------------
9: EXECUTE permission denied on object 'xp_prop_oledb_provider', database 'master', owner 'dbo'. (Microsoft SQL Server,错误: 229)
10: 有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&;ProdVer=08.00.2055&EvtSrc=MSSQLServer&EvtID=229&LinkId=20476
11: ------------------------------
12: 按钮:
13: 确定
14: ------------------------------
原因及解决方法:
出现这个问题是由于权限问题导致,只需要执行下面SQL语句授予相关权限即可(如果该登录名在映射关系中没有master数据库的映射关系,需要授予master数据库的public角色给该登录名),注意:login需要用具体登录名替换.
1: USE master;
2:
3: GO
4:
5: GRANT EXECUTE ON XP_PROP_OLEDB_PROVIDER TO [login];
6:
如果是SQL Server 2005 或以上版本,可以执行下面SQL语句
1: USE master;
2: GO
3:
4: EXECUTE ON SYS.XP_PROP_OLEDB_PROVIDER TO [login];

· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2013-06-18 迁移Reporting Services的方法与WMI错误