Me gustaría ejecutar una consulta para ver cuándo y quién modificó el DBO de una determinada base de datos. ¿Como podría hacerlo?¿Cómo encontrar los detalles de un cambio de DBO en una base de datos?
Respuesta
Encontré esta información en stackexchange ... y lo probé y funcionó. El único problema fue que solo me dio el usuario que cambió el DBO la última vez, no la vez anterior. Fui la persona que cambió el DBO la última vez porque mi aplicación no funcionaba. Necesito saber quién cambió el DBO el tiempo anterior a ese. ¿Alguien sabe cómo haría eso? ¿Encontró las últimas dos veces que el DBO fue cambiado y por quién? Este es el código que me permite saber quién lo cambió la última vez:
Esto está en la traza predeterminada. Ya sea que utilice sp_changedbowner o el, la sintaxis moderna adecuada, que se mostrará como éste:
autorización de modificación sobre la base de datos :: [foo] a [bar] Puede recuperar la información de esta manera:
DECLARE @path NVARCHAR(260);
SELECT
@path = REVERSE(SUBSTRING(REVERSE([path]),
CHARINDEX('\', REVERSE([path])), 260)) + N'log.trc'
FROM sys.traces
WHERE is_default = 1;
SELECT * -- whittle down to the meaningful trace columns
FROM sys.fn_trace_gettable(@path, DEFAULT)
WHERE EventClass = 152
ORDER BY StartTime DESC;
Ahora, el evento pudo haber sucedido hace mucho tiempo, por lo que no estará necesariamente en la traza.
sys.traces solo le proporcionará el archivo de rastreo predeterminado actual en uso. Si navega hasta el directorio, muestra que probablemente encontrará varios archivos de rastreo con un número secuencial. Si desea retroceder más, ejecute la segunda consulta en cada archivo individual hasta que encuentre lo que está buscando. –
¿Puede explicar eso un poco más por mí, por favor? Gracias. – user1683507
En referencia a su comentario en explicar más sobre el archivo de rastreo por omisión ...
Al consultar sys.traces
que va a devolver un registro para cada traza que se está ejecutando actualmente en su instancia de SQL. Uno de esos registros debe hacer referencia al archivo de rastreo predeterminado si la característica está habilitada. El formato de archivo del archivo de rastreo predeterminado es log_000.trc
. El número es un número secuencial. El archivo se almacena de manera predeterminada en el directorio de LOG donde se guardan los archivos de SQL ERRORLOG y no se puede modificar.
Si va a ese directorio, es probable que encuentre varios archivos de rastreo para su seguimiento predeterminado. La traza predeterminada creará un nuevo archivo una vez que un archivo llegue a 20 MB, creo. Dado que la traza predeterminada no captura mucha información, generalmente no crea una gran cantidad de archivos. Aunque señalaré que es algo que debe controlarse, los sistemas que no se tocan durante largos períodos de tiempo pueden hacer que estos pequeños archivos se acumulen y que el almacenamiento se llene.
Parece que el archivo de rastreo actual no tiene el evento que está buscando en él, lo que lo lleva a que sea anterior a ese archivo. Entonces tiene dos opciones de ejecutar la consulta sys.fn_trace_gettable()
en cada archivo individualmente; o tomaría los archivos más antiguos y los copiaría a una computadora cliente o algo además de mi servidor de producción y simplemente abriría cada uno en el generador de perfiles, dependiendo de cuántos estamos hablando. Si el evento en cuestión provocó que tu aplicación se rompa, puedes hacer referencia de manera obvia a esa hora para encontrar los archivos que necesitas enfocar.
- 1. Cómo cambio el esquema de db a dbo
- 2. Cómo obtener detalles de la base de datos magento
- 3. ¿Cómo notifico un proceso de cambio de una base de datos SQLite en un proceso diferente?
- 4. El dbo. prefijo en nombres de objeto de base de datos, ¿puedo ignorarlo?
- 5. No se pudo encontrar el servidor 'dbo' en sys.servers
- 6. Magento no toma nuevos detalles de la base de datos
- 7. ¿Cómo encontrar los objetos más grandes en una base de datos de SQL Server?
- 8. Métrica para encontrar imágenes similares en una base de datos
- 9. El permiso SELECT fue denegado en el objeto 'Dirección', base de datos 'CNET_85731', esquema 'dbo'
- 10. ¿Cómo cambio el nombre de una columna en una tabla de base de datos usando SQL?
- 11. Diseño de bases de datos para almacenar los detalles de la ocurrencia recurrente de un evento
- 12. Encontrar una restricción única de tabla de base de datos
- 13. Generación automática de scripts de cambio de base de datos
- 14. base de datos de cambio de nombre en psql
- 15. ¿Cómo se almacenan los NULL en una base de datos?
- 16. En MySQL, ¿cómo cambio el nombre de las tablas dentro de una base de datos?
- 17. Cambio de los datos escritos en una mónada escritor
- 18. El permiso EXECUTE fue denegado en el objeto 'xxxxxxx', base de datos 'zzzzzzz', esquema 'dbo'
- 19. ¿Cómo obtengo una lista de todos los esquemas en una base de datos del servidor Sql?
- 20. Cómo obtener todos los detalles de un contacto en Android
- 21. cómo guardar detalles de usuario en un parcial en mvc
- 22. ¿Cuál es la mejor práctica para almacenar detalles de conexión de base de datos en .NET?
- 23. ¿Cómo cambio el propietario de una base de datos de SQL Server?
- 24. Encontrar eventos simultáneos en una base de datos entre los tiempos
- 25. Para obtener los detalles de la tabla
- 26. Detalles de la columna de cambio de Mysql
- 27. ¿Consultar los detalles del esquema de una tabla en PostgreSQL?
- 28. ¿Cómo puedo encontrar entradas duplicadas en una tabla de base de datos?
- 29. Copiar datos de una tabla en una base de datos a otra base de datos separada
- 30. ¿Cómo crear un proyecto de base de datos desde una base de datos SQL Server existente?
sql server 2008 r2 – user1683507