問題出現環境:
使用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];