FIX: Cross-Database INSERTS May Fail with Error 229

ID: Q160541


The information in this article applies to:
  • Microsoft SQL Server version 6.5

BUG #: 16276

SYMPTOMS

A stored procedure run by a user who has full execute permissions and who is a valid user in two databases may fail with the following error on a cross-database INSERT:

229 %s permission denied on object %.*s, database %.*s, owner %.*s

This problem occurs even if the owner of the underlying table is also the owner of the stored procedure. This problem occurs if the stored procedure needs to be re-resolved, such as in the following cases: loading from backup, dropping and recreating an underlying table, or shutting down and restarting SQL Server (if the stored procedure references a temporary table). If the stored procedure is dropped and re-created, it works properly until one of the re-resolutions mentioned above occurs.


WORKAROUND

To work around this problem, do either of the following:

  • Take the temporary table creation out of the stored procedure; create the temporary table before calling the stored procedure.

    -or-


  • Drop and re-create the affected stored procedure after a re-resolution event has occurred.



STATUS

Microsoft has confirmed this to be a problem in SQL Server version version 6.5. This problem has been corrected in U.S. Service Pack 2 for Microsoft SQL Server version 6.5. For more information, contact your primary support provider.

Keywords : kbusage SSrvStProc kbbug6.50 kbfix6.50.sp2
Version : 6.5
Platform : WINDOWS
Issue type :


Last Reviewed: April 4, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.