Linked Server: EXECUTE permission denied on object 'xp_prop_oledb_provider', database 'master', owne...

weixin_33831673發表於2014-06-18

問題出現環境:

        使用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];

相關文章