Seguridad de la tabla temporal
Se aplica a: SQL Server 2016 (13.x) y versiones posteriores
Azure SQL Database
Azure SQL Managed Instance
Para comprender la seguridad en relación con las tablas temporales, debe entender los principios de seguridad que se aplican a esas tablas. Una vez que comprenda estos principios de seguridad, ya puede profundizar en la seguridad de las instrucciones CREATE TABLE
, ALTER TABLE
y SELECT
.
Principios de seguridad
En la siguiente tabla se describen los principios de seguridad que se aplican a las tablas temporales:
Principio | Descripción |
---|---|
Para la habilitación o deshabilitación del control de versiones del sistema se necesitan los privilegios más altos en los objetos afectados | Para habilitar y deshabilitar SYSTEM_VERSIONING se necesita el permiso CONTROL en la tabla actual y en la de historial. |
Los datos del historial no se pueden modificar directamente | Cuando SYSTEM_VERSIONING es ON , los usuarios no pueden modificar los datos del historial, con independencia de los permisos que tengan en la tabla actual o la de historial. Estas limitaciones incluyen las modificaciones de datos y esquema. 1 |
Para consultar datos del historial se necesita el permiso SELECT en la tabla de historial |
Un usuario con el permiso SELECT en la tabla actual no tiene el permiso SELECT automáticamente en la tabla de historial. |
La auditoría revela operaciones que afectan a la tabla de historial de formas específicas | La configuración de auditoría de la tabla actual no se aplica automáticamente a la tabla de historial. La auditoría debe habilitarse de forma explícita para la tabla de historial. Una vez que se habilita, la auditoría de la tabla de historial captura de forma regular todos los intentos directos de acceder a los datos (al margen de si se han realizado correctamente o no).SELECT con la extensión de consulta temporal muestra que esa operación ha afectado a la tabla de historial.La instrucción CREATE/ALTER para una tabla temporal expone información según la que la comprobación de permisos también tiene lugar en la tabla del historial. El archivo de auditoría contiene registros adicionales para la tabla de historial.Las operaciones de DML efectuadas en la tabla actual muestran que la de historial se ha visto afectada, pero additional_information ofrece el contexto necesario (DML ha sido el resultado de SYSTEM_VERSIONING ). |
1 Si tiene permiso ALTER en la tabla actual y en la tabla de historial, y quita una columna de la tabla actual, también se quita la columna asociada de la tabla de historial, incluso si SYSTEM_VERSIONING
es ON
.
Realización de operaciones de esquema
Cuando SYSTEM_VERSIONING
está establecido en ON
, las operaciones de modificación de esquema son limitadas.
Operaciones de esquema ALTER no permitidas.
Operación | Tabla actual | Tabla del historial |
---|---|---|
DROP TABLE |
No permitido | No permitido |
ALTER TABLE...SWITCH PARTITION |
Solo SWITCH IN (vea Creación de particiones con tablas temporales) |
Solo SWITCH OUT (vea Creación de particiones con tablas temporales) |
ALTER TABLE...DROP PERIOD |
No permitido | N/D |
ALTER TABLE...ADD PERIOD |
N/D | No permitido |
Operaciones ALTER TABLE permitidas
Operación | Current | Historial |
---|---|---|
ALTER TABLE...REBUILD |
Permitida (independientemente) | Permitida (independientemente) |
CREATE INDEX |
Permitida (independientemente) | Permitida (independientemente) |
CREATE STATISTICS |
Permitida (independientemente) | Permitida (independientemente) |
Seguridad de la instrucción de tabla temporal CREATE
Característica | Creación de una tabla de historial | Reutilización de la tabla de historial existente |
---|---|---|
Permiso necesario | El permiso CREATE TABLE en la base de datosEl permiso ALTER en los esquemas en los que se van a crear las tablas actual y de historial |
El permiso CREATE TABLE en la base de datosEl permiso ALTER en el esquema en el que se creará la tabla actual.El permiso CONTROL en la tabla de historial especificada como parte de la instrucción CREATE TABLE que crea la tabla temporal. |
Auditoría | En la auditoría se muestra que los usuarios trataron de crear dos objetos. Se puede producir un error en la operación debido a una falta de permisos para crear la tabla en la base de datos o para modificar esquemas para cualquiera de las dos tablas. | En la auditoría se muestra que la tabla temporal se ha creado. La operación puede generar un error debido a la falta de permisos para crear una tabla en la base de datos, alterar el esquema para la tabla temporal o bien por la falta de permisos en la tabla de historial. |
Seguridad de la instrucción ALTER tabla temporal SET (SYSTEM_VERSIONING ON/OFF)
Característica | Creación de una tabla de historial | Reutilización de la tabla de historial existente |
---|---|---|
Permiso necesario | El permiso CONTROL en la base de datos.El permiso CREATE TABLE en la base de datos.Permiso ALTER en los esquemas en los que se va a crear la tabla de historial. |
El permiso CONTROL en la tabla original que se ha modificado.El permiso CONTROL en la tabla de historial especificada como parte de la instrucción ALTER TABLE . |
Auditoría | En la auditoría se muestra que se modificó la tabla temporal y que la de historial se creó a la vez. Esta operación puede generar un error debido a la falta de permisos para crear una tabla en la base de datos, alterar el esquema para la tabla de historial o modificar la tabla de temporal. | En la auditoría se muestra que se ha modificado la tabla temporal, pero que la operación necesitaba acceso a la de historial. La operación puede generar un error debido a una falta de permisos en la tabla de historial o en la actual. |
Seguridad de la instrucción SELECT
El permiso SELECT
no cambia para las instrucciones SELECT
que no afectan a la tabla de historial. Para las instrucciones SELECT
que afectan a la tabla de historial, se necesita el permiso SELECT
en la tabla actual y en la de historial.
Contenido relacionado
- Tablas temporales
- Introducción a las tablas temporales con control de versiones del sistema
- Comprobaciones de coherencia del sistema de la tabla temporal
- Creación de particiones con tablas temporales
- Consideraciones y limitaciones de las tablas temporales
- Administración de la retención de datos históricos en las tablas temporales con versiones del sistema
- Tablas temporales con control de versiones del sistema con tablas optimizadas para memoria
- Funciones y vistas de metadatos de la tabla temporal