DBCC CHECKIDENT sur une table temporaire en jetant des autorisations d'erreur pour l'utilisateur incorrect

Je suis connecté à un Serveur SQL server 2005 base de données comme un non-utilisateur sa 'bhk', qui est un membre du "public" rôle de serveur. Le code suivant tente d'exécuter une procédure stockée appelée par l'utilisateur "bhk'. Cette ligne de code...

TRUNCATE TABLE #Table1
DBCC CHECKIDENT('#Table1', RESEED, @SequenceNumber) WITH NO_INFOMSGS

la cause de cette erreur...

L'utilisateur "invité" n'a pas l'autorisation
pour exécuter DBCC CHECKIDENT pour objet
'#Table1__00000000007F'.

Je suis conscient des autorisations requises pour l'exécution de DBCC CHECKIDENT...
De l'appelant doit être propriétaire de la table, ou être membre du rôle de serveur fixe sysadmin, la base de données fixe db_owner, ou les données db_ddladmin.

J'ai donc deux questions:

  1. Depuis bhk' est d'appeler un stockées
    procédure qui crée un temporaire
    table, ne devrait-on pas "bhk' être le propriétaire
    et être autorisé à exécuter DBCC
    CHECKIDENT?
  2. Pourquoi le message d'erreur
    message de retour que l'utilisateur "invité"
    n'a pas l'autorisation? À ma connaissance, je ne suis pas
    connecté en tant que "invité".

Toute aide serait grandement appréciée.

OriginalL'auteur Brad Knowles | 2008-10-09