我有一個客戶端,正在訪問xp_regread(嘗試查找數據庫路徑)的「訪問被拒絕」,但我似乎無法重現此操作。我已經嘗試運行以下內容SQL Server xp_regread訪問被拒絕
REVOKE execute on xp_regread to public
但它仍然有效。我還發現了一些有關SQL Server 2000問題的文章(http://support.microsoft.com/kb/887165),但客戶端服務器是2005年。關於如何解決此問題的任何想法。
編輯:我曾嘗試以下
USE MASTER
GO
REVOKE execute on xp_regread to public
GO
DECLARE @InstanceName nvarchar(128)
SET @InstanceName = ISNULL(CONVERT(nvarchar(128), SERVERPROPERTY('InstanceName')), N'MSSQLSERVER')
DECLARE @InstanceKey nvarchar(128)
EXECUTE master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\Microsoft SQL Server\Instance Names\SQL\', @InstanceName, @InstanceKey OUTPUT
print @InstanceName
print @InstanceKey
但仍能工作。爲了清楚起見,我試圖重現一個呼叫不起作用的問題。取消權限是我讀過的一種方式,但它仍然適用於我。
問題是什麼?你想讓用戶運行它,還是不想要?我問,因爲你有REVOKE – gbn 2011-01-10 14:19:19
我希望它能夠運行。用戶遇到了「拒絕訪問」的問題,我試圖找出原因/重現問題。 – Kyle 2011-01-10 14:29:26