FIX: Db_owner Role Members Cannot Use sp_[un]bindrule and sp_[un]bindefault

ID: Q234174


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

BUG #: 54274 (SQLBUG_70); 55554 (SQLBUG_70)

SYMPTOMS

Although a member of the db_owner role is successfully able to execute the sp_bindefault stored procedure, the default will not be correctly supplied when an INSERT statement is run and a value is not specified.

Additionally, db_owner role members will receive error 15104 if they attempt to run sp_unbindefault, sp_bindrule, or sp_unbindrule:

Msg 15104, Level 16, State 1
You do not own a table named 'dbo' that has a column named 'Today'.


CAUSE

The owner qualifier in the object name is optional. When specified, these system stored procedures are not correctly handling the parameter. Note that in the error 15104 message, the table name is given as 'dbo' rather than the actual table name.


RESOLUTION

A supported fix that corrects this problem is now available from Microsoft, but it has not been fully regression tested and should be applied only to systems experiencing this specific problem. If you are not severely affected by this specific problem, Microsoft recommends that you wait for the next SQL Server service pack that contains this fix.

To resolve this problem immediately, contact Microsoft Product Support Services to obtain the fix. For a complete list of Microsoft Product Support Services phone numbers and information on support costs, please go to the following address on the World Wide Web:

http://www.microsoft.com/support/supportnet/overview/overview.asp
The English version of this fix should have the following file attributes or later:

   Version      File name
   -----------------------

   7.00.663     S70663.exe 
NOTE: Due to file dependencies, the most recent hotfix or feature that contains the above files may also contain additional files.


WORKAROUND

To work around this problem, run the command as the actual database owner (DBO), rather than a db_owner role member, and omit the optional object owner qualifier from the command. For example, instead of doing the following:


EXEC sp_bindefault 'dbo.MyDefault', 'TestTable.TestColumn' 
Use a command like the one below:

EXEC sp_bindefault 'MyDefault', 'TestTable.TestColumn' 


STATUS

Microsoft has confirmed this to be a problem in SQL Server version 7.0.


MORE INFORMATION

SQL Server 7.0 Books Online does not explicitly mention that permissions to these procedures are also granted to db_owner role members. However, this permission is consistent with the purpose and design of roles in SQL Server 7.0.

Additional query words: security constraint

Keywords : SSrvAdmin SSrvDoc_Err SSrvTran_SQL kbbug7.00
Version : winnt:7.0
Platform : winnt
Issue type : kbbug


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