Keamanan Tabel Temporal
Berlaku untuk: SQL Server 2016 (13.x) dan Azure SQL Database Azure SQL Managed Instance yang lebih baru
Untuk memahami keamanan seperti yang berlaku untuk tabel temporal, penting untuk memahami prinsip keamanan yang berlaku untuk tabel temporal. Setelah Anda memahami prinsip-prinsip keamanan ini, Anda siap untuk menyelami keamanan di sekitar pernyataan CREATE TABLE, ALTER TABLE, dan SELECT .
Prinsip Keamanan
Tabel berikut ini menjelaskan prinsip keamanan yang berlaku untuk tabel temporal:
Prinsip | Deskripsi |
---|---|
Mengaktifkan/menonaktifkan penerapan versi sistem memerlukan hak istimewa tertinggi pada objek yang terpengaruh | Mengaktifkan dan menonaktifkan SYSTEM_VERSIONING memerlukan izin CONTROL pada tabel saat ini dan riwayat |
Data riwayat tidak dapat dimodifikasi secara langsung | Saat SYSTEM_VERSIONING adalah pengguna ON tidak dapat mengubah data riwayat terlepas dari izin aktual mereka pada tabel saat ini atau riwayat. Ini termasuk modifikasi data dan skema. |
Mengkueri data riwayat memerlukan izin SELECT pada tabel riwayat | Hanya karena pengguna memiliki izin SELECT pada tabel saat ini tidak berarti bahwa mereka memiliki izin SELECT pada tabel riwayat. |
Operasi permukaan audit memengaruhi tabel riwayat dengan cara tertentu: | Pengaturan audit dari tabel saat ini tidak diterapkan secara otomatis ke tabel riwayat. Audit perlu diaktifkan secara eksplisit untuk tabel riwayat. Setelah diaktifkan, audit pada tabel riwayat secara teratur mengambil semua upaya langsung untuk mengakses data (terlepas dari apakah berhasil atau tidak). SELECT dengan ekstensi kueri temporal menunjukkan bahwa tabel riwayat terpengaruh dengan operasi tersebut. CREATE/ALTER temporal table mengekspos informasi bahwa pemeriksaan izin juga terjadi pada tabel riwayat. File audit akan berisi rekaman tambahan untuk tabel riwayat. Operasi DML pada permukaan tabel saat ini yang tabel riwayatnya terpengaruh tetapi additional_info menyediakan konteks yang diperlukan (DML adalah hasil dari system_versioning). |
Melakukan Operasi Skema
Saat SYSTEM_VERSIONING diatur ke AKTIF, operasi modifikasi skema dibatasi.
Operasi skema ALTER yang tidak diizinkan
Operasi | Tabel Saat Ini | Tabel Riwayat |
---|---|---|
DROP TABLE | Batasan | Batasan |
UBAH TABEL... BERALIH PARTISI | SWITCH IN saja (lihat Pemartisian dengan Tabel Temporal) | BERALIH KELUAR saja (lihat Pemartisian dengan Tabel Temporal) |
UBAH TABEL... PERIODE PENGHILANGAN | Batasan | - |
UBAH TABEL... TAMBAHKAN TITIK | - | Batasan |
Operasi ALTER TABLE yang diizinkan
Operasi | Saat ini | Riwayat |
---|---|---|
UBAH TABEL... MEMBANGUN ULANG | Diizinkan (secara independen) | Diizinkan (secara independen) |
MEMBUAT INDEKS | Diizinkan (secara independen) | Diizinkan (secara independen) |
CREATE STATISTICS | Diizinkan (secara independen) | Diizinkan (secara independen) |
Keamanan Pernyataan CREATE Temporal TABLE
Fitur | Buat Tabel Riwayat Baru | Gunakan Kembali Tabel Riwayat yang Ada |
---|---|---|
Izin Diperlukan | Izin CREATE TABLE dalam database UBAH izin pada skema tempat tabel saat ini dan riwayat sedang dibuat |
Izin CREATE TABLE dalam database UBAH izin pada skema tempat tabel saat ini akan dibuat. Izin CONTROL pada tabel riwayat yang ditentukan sebagai bagian dari pernyataan CREATE TABLE yang membuat tabel temporal |
Audit | Audit menunjukkan bahwa pengguna mencoba membuat dua objek. Operasi mungkin gagal karena kurangnya izin untuk membuat tabel dalam database atau karena kurangnya izin untuk mengubah skema untuk salah satu tabel. | Audit menunjukkan bahwa tabel temporal dibuat. Operasi mungkin gagal karena kurangnya izin untuk membuat tabel dalam database, karena kurangnya izin untuk mengubah skema untuk tabel temporal, atau kurangnya izin pada tabel riwayat. |
Keamanan Pernyataan ALTER Temporal TABLE SET (SYSTEM_VERSIONING ON/OFF)
Fitur | Buat Tabel Riwayat Baru | Gunakan Kembali Tabel Riwayat yang Ada |
---|---|---|
Izin Diperlukan | Izin CONTROL dalam database Izin CREATE TABLE dalam database UBAH izin pada skema tempat tabel riwayat sedang dibuat |
Izin CONTROL pada tabel asli yang diubah Izin CONTROL pada tabel riwayat yang ditentukan sebagai bagian dari pernyataan ALTER TABLE |
Audit | Audit menunjukkan bahwa tabel temporal diubah dan tabel riwayat dibuat secara bersamaan. Operasi mungkin gagal karena kurangnya izin untuk membuat tabel dalam database, karena kurangnya izin untuk mengubah skema untuk tabel riwayat, atau karena kurangnya izin untuk mengubah tabel temporal. | Audit menunjukkan bahwa tabel temporal diubah, tetapi operasi memerlukan akses ke tabel riwayat. Operasi mungkin gagal karena kurangnya izin pada tabel riwayat atau kurangnya izin pada tabel saat ini. |
Keamanan Pernyataan SELECT
Izin SELECT tidak berubah untuk pernyataan SELECT yang tidak memengaruhi tabel riwayat. Untuk pernyataan SELECT yang memengaruhi tabel riwayat, izin SELECT diperlukan pada tabel saat ini dan tabel riwayat.
Lihat Juga
- Tabel Temporal
- Mulai menggunakan Tabel Temporal Versi Sistem
- Pemeriksaan Konsistensi Sistem Tabel Temporal
- Pemartisian dengan Tabel Temporal
- Pertimbangan dan Batasan Tabel Temporal
- Mengelola Retensi Data Historis dalam Tabel Temporal Versi Sistem
- Tabel Temporal Versi Sistem dengan Tabel yang Dioptimalkan Memori
- Tampilan dan Fungsi Metadata Tabel Temporal
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk