Tuesday, March 20, 2012

BUG: Cannot create subscription as NT AUTHORITY\NETWORK SERVICE

Platform:
Windows 2003 Server Enterprise Edition
SQL Server 2000 Developer Edition SP 3
Reporting Services 2000 Developer Edition SP 2
Hi,
I believe I have encountered a bug in Reporting Services and SQL Server.
To reproduce:
Set the Reporting Service Web Service to run as NT AUTHORITY\NETWORK SERVICE
(I believe this is the default on Windows 2003 server as opposed to the
local ASPNET account) using rsconfig.exe, et al.
Make sure NT AUTHORITY\NETWORK SERVICE has RSExecRole privilege on the
Report Server database, Report Server temp database, master, and msdb.
Then try and create a report subscription. I receive this error:
An internal error occurred on the report server. See the error log for more
details. (rsInternalError) The specified '@.owner_login_name' is invalid
(valid values are returned by sp_helplogins[excluding Windows NT groups]).
My guess is that when the Report Server tries to create a subscription it
does so by invoking sp_add_job/sp_verify_job, this then fails because NT
AUTHORITY\NETWORK SERVICE is a Windows Group. I believe the actual error
above is thrown by the stored procedure, sp_verify_job:
Server: Msg 14234, Level 16, State 1, Procedure sp_verify_job, Line 198
The specified '@.owner_login_name' is invalid (valid values are returned by
sp_helplogins [excluding Windows NT groups]).
or
From sp_verify_job:
-- Now just check that the login id is valid (ie. it exists and isn't an NT
group)
IF (@.owner_sid IS NULL) OR (EXISTS (SELECT *
FROM master.dbo.syslogins
WHERE (sid = @.owner_sid)
AND (isntgroup <> 0)))
BEGIN
-- NOTE: In the following message we quote @.owner_login_name instead of
@.owner_sid
-- since this is the parameter the user passed to the calling SP
(ie. either
-- sp_add_job or sp_update_job)
SELECT @.res_valid_range = FORMATMESSAGE(14203)
RAISERROR(14234, -1, -1, '@.owner_login_name', @.res_valid_range)
RETURN(1) -- Failure
END
Thanks,
Bryan"BDB" <bdb@.reply.to.group.com> wrote in message
news:OJi2X7QnFHA.3900@.TK2MSFTNGP09.phx.gbl...
> Platform:
> Windows 2003 Server Enterprise Edition
> SQL Server 2000 Developer Edition SP 3
> Reporting Services 2000 Developer Edition SP 2
> Hi,
> I believe I have encountered a bug in Reporting Services and SQL Server.
> To reproduce:
> Set the Reporting Service Web Service to run as NT AUTHORITY\NETWORK
> SERVICE (I believe this is the default on Windows 2003 server as opposed
> to the local ASPNET account) using rsconfig.exe, et al.
> Make sure NT AUTHORITY\NETWORK SERVICE has RSExecRole privilege on the
> Report Server database, Report Server temp database, master, and msdb.
> Then try and create a report subscription. I receive this error:
> An internal error occurred on the report server. See the error log for
> more details. (rsInternalError) The specified '@.owner_login_name' is
> invalid (valid values are returned by sp_helplogins[excluding Windows NT
> groups]).
>
> My guess is that when the Report Server tries to create a subscription it
> does so by invoking sp_add_job/sp_verify_job, this then fails because NT
> AUTHORITY\NETWORK SERVICE is a Windows Group. I believe the actual error
> above is thrown by the stored procedure, sp_verify_job:
> Server: Msg 14234, Level 16, State 1, Procedure sp_verify_job, Line 198
> The specified '@.owner_login_name' is invalid (valid values are returned by
> sp_helplogins [excluding Windows NT groups]).
> or
> From sp_verify_job:
> -- Now just check that the login id is valid (ie. it exists and isn't an
> NT group)
> IF (@.owner_sid IS NULL) OR (EXISTS (SELECT *
> FROM master.dbo.syslogins
> WHERE (sid = @.owner_sid)
> AND (isntgroup <> 0)))
> BEGIN
> -- NOTE: In the following message we quote @.owner_login_name instead of
> @.owner_sid
> -- since this is the parameter the user passed to the calling SP
> (ie. either
> -- sp_add_job or sp_update_job)
> SELECT @.res_valid_range = FORMATMESSAGE(14203)
> RAISERROR(14234, -1, -1, '@.owner_login_name', @.res_valid_range)
> RETURN(1) -- Failure
> END
>
> Thanks,
> Bryan
>
This bug was fixed (hacked, IMO) in SQL Server 2000 SP4. I have no idea if
a KB article was ever published.|||We've applied SP4 for SQL and still have the error. How did you "fix" it?
--
Thanks,
CGW
"BDB" wrote:
> "BDB" <bdb@.reply.to.group.com> wrote in message
> news:OJi2X7QnFHA.3900@.TK2MSFTNGP09.phx.gbl...
> > Platform:
> > Windows 2003 Server Enterprise Edition
> > SQL Server 2000 Developer Edition SP 3
> > Reporting Services 2000 Developer Edition SP 2
> >
> > Hi,
> >
> > I believe I have encountered a bug in Reporting Services and SQL Server.
> >
> > To reproduce:
> >
> > Set the Reporting Service Web Service to run as NT AUTHORITY\NETWORK
> > SERVICE (I believe this is the default on Windows 2003 server as opposed
> > to the local ASPNET account) using rsconfig.exe, et al.
> >
> > Make sure NT AUTHORITY\NETWORK SERVICE has RSExecRole privilege on the
> > Report Server database, Report Server temp database, master, and msdb.
> >
> > Then try and create a report subscription. I receive this error:
> >
> > An internal error occurred on the report server. See the error log for
> > more details. (rsInternalError) The specified '@.owner_login_name' is
> > invalid (valid values are returned by sp_helplogins[excluding Windows NT
> > groups]).
> >
> >
> >
> > My guess is that when the Report Server tries to create a subscription it
> > does so by invoking sp_add_job/sp_verify_job, this then fails because NT
> > AUTHORITY\NETWORK SERVICE is a Windows Group. I believe the actual error
> > above is thrown by the stored procedure, sp_verify_job:
> >
> > Server: Msg 14234, Level 16, State 1, Procedure sp_verify_job, Line 198
> > The specified '@.owner_login_name' is invalid (valid values are returned by
> > sp_helplogins [excluding Windows NT groups]).
> >
> > or
> >
> > From sp_verify_job:
> >
> > -- Now just check that the login id is valid (ie. it exists and isn't an
> > NT group)
> > IF (@.owner_sid IS NULL) OR (EXISTS (SELECT *
> > FROM master.dbo.syslogins
> > WHERE (sid = @.owner_sid)
> > AND (isntgroup <> 0)))
> > BEGIN
> > -- NOTE: In the following message we quote @.owner_login_name instead of
> > @.owner_sid
> > -- since this is the parameter the user passed to the calling SP
> > (ie. either
> > -- sp_add_job or sp_update_job)
> > SELECT @.res_valid_range = FORMATMESSAGE(14203)
> > RAISERROR(14234, -1, -1, '@.owner_login_name', @.res_valid_range)
> > RETURN(1) -- Failure
> > END
> >
> >
> > Thanks,
> > Bryan
> >
> This bug was fixed (hacked, IMO) in SQL Server 2000 SP4. I have no idea if
> a KB article was ever published.
>
>

No comments:

Post a Comment