He iniciado sesión en una base de datos de SQL Server 2005 como un usuario no sa, 'bhk', que es miembro de la función de servidor 'público' solamente. El siguiente código intenta ejecutarse dentro de un procedimiento almacenado llamado por el usuario 'bhk'. Esta línea de código ...DBCC CHECKIDENT en una tabla temporal arrojando errores de permisos para el usuario incorrecto
TRUNCATE TABLE #Table1
DBCC CHECKIDENT('#Table1', RESEED, @SequenceNumber) WITH NO_INFOMSGS
causas de este error ...
usuario 'invitado' no tiene permiso para ejecutar DBCC CHECKIDENT por objeto
'# Table1__00000000007F'.
Soy consciente de los permisos necesarios para ejecutar DBCC CHECKIDENT ...
persona que llama debe poseer la tabla, o ser un miembro de la función fija de servidor sysadmin, la función de base de datos fija db_owner, o la función de base de datos fija db_ddladmin.
así que tengo dos preguntas:
- Desde 'BHK' se llama a un procedimiento almacenado que crea una tabla temporal , no debe 'BHK' ser el propietario y se le permitirá ejecutar DBCC ¿CHECKIDENT?
- ¿Por qué el mensaje de error devuelve que el usuario 'invitado' no tiene permiso? Que yo sepa, no estoy conectado como 'invitado'.
Cualquier ayuda sería muy apreciada.
Si bien esto probablemente funcione, estoy de acuerdo con que no me gusta ese tipo de manipulación. –