以下是我的SQL查詢的SQL Server 2005上運行正常,但是SQL Server 2008上,它拋出的錯誤:SQL查詢錯誤:SQLDMO
sp_Security error: Unable to create SQLDMO Server object
SQL查詢:
DECLARE @object int
DECLARE @hr int
DECLARE @hack smallint
DECLARE @return varchar(255)
DECLARE @Results nvarchar(255)
DECLARE @server sysname
DECLARE @login sysname
DECLARE @tsql varchar(1500)
set @server = 'YOGESH\SQLEXPRESS'
EXEC @hr = sp_OACreate 'SQLDMO.SQLServer', @object OUT
IF @hr < 0
BEGIN
RAISERROR('sp_Security error: Unable to create SQLDMO Server object', 0, 1)
RETURN
END
EXEC @hr = sp_OASetProperty @object,'LoginSecure', 'False'
IF @hr < 0
BEGIN
RAISERROR('sp_Security error: Unable to set LoginSecure', 0, 1)
GOTO ExitProc
END
Print ' Security Audit for Server : ' + @server
set @tsql = 'DECLARE login_cursor CURSOR FOR SELECT loginname FROM master.dbo.syslogins order by loginname'
exec (@tsql)
OPEN login_cursor
FETCH NEXT FROM login_cursor
INTO @login
WHILE @@FETCH_STATUS = 0
BEGIN
set @hack = 0
set @Results = 'Connect("' + @server +'","'[email protected]+'","'[email protected]+'")'
EXEC @hr = sp_OAMethod @object, @Results
IF @hr = 0
begin
print 'login : ' + @login + ' security problem with password ' + @login
EXEC @hr = sp_OAMethod @object, 'Disconnect'
set @hack = 1
end
IF (@hack = 0)
begin
set @Results = 'Connect("' + @server +'","'[email protected]+'","'+'")'
EXEC @hr = sp_OAMethod @object, @Results
IF @hr = 0
begin
print 'login : ' + @login + ' security problem with password NULL'
EXEC @hr = sp_OAMethod @object, 'Disconnect'
set @hack = 1
end
end
可能的重複:[在SqlServer 2008中的SQLDMO類似的問題](http://stackoverflow.com/questions/2875145/sql-server-2008-alternative-for-sql-dmo)在2010年發佈(和回答) 。請參見[服務器管理對象](http://msdn.microsoft.com/zh-cn/library/ms162169.aspx)。 – hardmath 2012-07-07 13:31:35