FIX: Cross-Database INSERTS May Fail with Error 229 (160541)
The information in this article applies to:
This article was previously published under Q160541
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.
Modification Type: | Major | Last Reviewed: | 10/3/2003 |
---|
Keywords: | kbBug kbfix kbusage KB160541 |
---|
|