Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru
Azure SQL Database
Azure SQL Managed Instance
Database SQL di Microsoft Fabric
Untuk mengamankan tabel temporal, Anda harus memahami prinsip keamanan yang berlaku untuk tabel tersebut. Setelah Anda memahami prinsip-prinsip ini, Anda dapat menerapkan keamanan pada CREATE TABLEpernyataan , 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 maupun tabel riwayat. |
| Data riwayat tidak dapat dimodifikasi secara langsung | Saat SYSTEM_VERSIONING disetel ke ON, pengguna tidak dapat mengubah data riwayat, terlepas dari izin mereka pada tabel saat ini maupun tabel riwayat. Batasan ini mencakup modifikasi data dan skema.
1 |
Mengkueri data riwayat memerlukan SELECT izin pada tabel riwayat |
Pengguna yang memiliki izin SELECT pada tabel saat ini tidak otomatis memiliki izin SELECT pada tabel riwayat. |
| Audit mengungkapkan operasi yang memengaruhi tabel riwayat dengan cara tertentu | Pengaturan audit dari tabel saat ini tidak diterapkan secara otomatis ke tabel riwayat. Anda harus mengaktifkan audit secara eksplisit untuk tabel riwayat. Setelah Anda mengaktifkannya, audit pada tabel riwayat menangkap semua upaya langsung untuk mengakses data, baik berhasil maupun tidak.SELECT dengan ekstensi kueri temporal menunjukkan bahwa operasi tersebut memengaruhi tabel riwayat.CREATE/ALTER tabel temporal menunjukkan bahwa pemeriksaan izin juga dilakukan pada tabel riwayat. File audit berisi rekaman tambahan untuk tabel riwayat.Operasi bahasa manipulasi data (DML) pada tabel saat ini mengungkapkan bahwa operasi tersebut memengaruhi tabel riwayat, tetapi additional_information memberikan konteks yang diperlukan (DML adalah hasil dari SYSTEM_VERSIONING). |
1 Jika Anda memiliki ALTER izin pada tabel saat ini dan tabel riwayat, dan Anda menghapus kolom di tabel saat ini, kolom terkait di tabel riwayat juga akan dihapus, meskipun SYSTEM_VERSIONING adalah ON.
Melakukan operasi skema
Ketika SYSTEM_VERSIONING diatur ke ON, operasi modifikasi skema dibatasi.
Operasi yang dilarang ALTER SCHEMA
| Pengoperasian | Tabel saat ini | Tabel riwayat |
|---|---|---|
DROP TABLE |
Disallowed | Disallowed |
ALTER TABLE...SWITCH PARTITION |
SWITCH IN hanya (lihat Mempartisi dengan tabel temporal) |
SWITCH OUT hanya (lihat Mempartisi dengan tabel temporal) |
ALTER TABLE...DROP PERIOD |
Disallowed | N/A |
ALTER TABLE...ADD PERIOD |
N/A | Disallowed |
Operasi yang diizinkan ALTER TABLE
| Pengoperasian | Current | History |
|---|---|---|
ALTER TABLE...REBUILD |
Diizinkan (secara independen) | Diizinkan (secara independen) |
CREATE INDEX |
Diizinkan (secara independen) | Diizinkan (secara independen) |
CREATE STATISTICS |
Diizinkan (secara independen) | Diizinkan (secara independen) |
Keamanan pernyataan BUAT tabel temporal
| Feature | Membuat tabel riwayat baru | Gunakan kembali tabel riwayat yang sudah ada |
|---|---|---|
| Izin diperlukan |
CREATE TABLE izin akses dalam basis dataALTER izin akses pada skema tempat Anda membuat tabel saat ini dan tabel riwayat |
CREATE TABLE izin akses dalam basis dataALTER izin pada skema tempat tabel saat ini dibuat.CONTROL izin 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 ini mungkin gagal karena kurangnya izin untuk membuat tabel di 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, kurangnya izin untuk mengubah skema untuk tabel temporal, atau kurangnya izin pada tabel riwayat. |
Keamanan pernyataan ALTER tabel temporal SET (SYSTEM_VERSIONING)
| Feature | Membuat tabel riwayat baru | Gunakan kembali tabel riwayat yang sudah ada |
|---|---|---|
| Izin diperlukan |
CONTROL izin dalam basis data.CREATE TABLE izin dalam basis data.ALTER izin pada skema tempat Anda membuat tabel riwayat. |
CONTROL izin pada tabel asli yang Anda ubah.CONTROL izin untuk tabel riwayat yang ditentukan sebagai bagian dari pernyataan ALTER TABLE. |
| Audit | Audit menunjukkan bahwa tabel temporal diubah dan tabel riwayat dibuat secara bersamaan. Operasi ini mungkin gagal karena kurangnya izin untuk membuat tabel di database, tidak adanya izin untuk mengubah skema tabel riwayat, atau tidak adanya izin untuk memodifikasi 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
SELECT izin tidak berubah untuk SELECT pernyataan yang tidak memengaruhi tabel riwayat. Untuk pernyataan SELECT yang memengaruhi tabel riwayat, Anda memerlukan izin akses SELECT baik pada tabel saat ini maupun tabel riwayat.
Konten terkait
- tabel temporal
- Mulai menggunakan tabel temporal versi sistem
- Pemeriksaan konsistensi pada sistem tabel temporal
- Mempartisi dengan tabel temporal
- Pertimbangan dan batasan tabel temporal
- Mengelola retensi data historis dalam tabel temporal versi sistem
- Tabel temporal versi sistem dengan tabel memori yang dioptimalkan
- Tampilan dan fungsi metadata tabel temporal