问题出现环境:
使用SQL Server Management Studio 2008 连接到SQL Server 2000的数据库,点击其中一个Oracle链接服务器,单击“目录”时,Linked Server弹出如下错误信息.使用另外一个拥有sysadmin角色的账号登录检查发现没有此类问题。
标题: Microsoft SQL Server Management Studio
------------------------------
无法为该请求检索数据。 (Microsoft.SqlServer.Management.Sdk.Sfc)
有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476
------------------------------
其他信息:
执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)
------------------------------
EXECUTE permission denied on object 'xp_prop_oledb_provider', database 'master', owner 'dbo'. (Microsoft SQL Server,错误: 229)
有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=08.00.2055&EvtSrc=MSSQLServer&EvtID=229&LinkId=20476
------------------------------
按钮:
确定
------------------------------
出现这个问题是由于权限问题导致,只需要执行下面SQL语句授予相关权限即可(如果该登录名在映射关系中没有master数据库的映射关系,需要授予master数据库的public角色给该登录名)
USE master;
GO
GRANT EXECUTE ON XP_PROP_OLEDB_PROVIDER TO [login];
如果是SQL Server 2005 或以上版本,可以执行下面SQL 语句
USE master;
GO
GRANT EXECUTE ON SYS.XP_PROP_OLEDB_PROVIDER TO LOGIN;
该贴被潇湘隐者编辑于2014-6-20 22:53:00
该贴由hui.chen转至本版2014-11-5 16:24:17