sql server 2008 - SQL Query Error: SQLDMO -
the following sql query works fine on sql server 2005, on sql server 2008, throws error:
sp_security error: unable create sqldmo server object
sql query:
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 create sqldmo server object', 0, 1) return end exec @hr = sp_oasetproperty @object,'loginsecure', 'false' if @hr < 0 begin raiserror('sp_security error: unable set loginsecure', 0, 1) goto exitproc end print ' security audit server : ' + @server set @tsql = 'declare login_cursor cursor select loginname master.dbo.syslogins order loginname' exec (@tsql) open login_cursor fetch next login_cursor @login while @@fetch_status = 0 begin set @hack = 0 set @results = 'connect("' + @server +'","'+@login+'","'+@login+'")' exec @hr = sp_oamethod @object, @results if @hr = 0 begin print 'login : ' + @login + ' security problem password ' + @login exec @hr = sp_oamethod @object, 'disconnect' set @hack = 1 end if (@hack = 0) begin set @results = 'connect("' + @server +'","'+@login+'","'+'")' exec @hr = sp_oamethod @object, @results if @hr = 0 begin print 'login : ' + @login + ' security problem password null' exec @hr = sp_oamethod @object, 'disconnect' set @hack = 1 end end
as referenced in comment hardmath, microsoft no longer distributes sql-dmo libraries sql server 2008 in favor of sql smo. so, can still install sql-dmo via 'microsoft sql server 2005 backward compatibility components' (you can find download links package on this page).
here alternate way enable sql server logins not use sql-dmo:
use [master] go exec xp_instance_regwrite n'hkey_local_machine', n'software\microsoft\mssqlserver\mssqlserver', n'loginmode', reg_dword, 2 go
i suspect above code not work on versions of sql server prior sql server 2008.
Comments
Post a Comment