问题出现环境:
使用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];
时间: 2024-09-25 13:26:57