Pelajaran 2: Membuat dan Menerapkan Kebijakan Standar Penamaan
Berlaku untuk: SQL Server
Beberapa jenis kebijakan Manajemen Berbasis Kebijakan dapat membuat pemicu untuk memberlakukan kepatuhan di masa mendatang terhadap kebijakan. Dalam pelajaran ini, Anda membuat kebijakan yang memberlakukan standar penamaan untuk tabel. Kemudian, Anda menguji kebijakan dengan mencoba membuat tabel yang melanggar kebijakan.
Prasyarat
Untuk menyelesaikan tutorial ini, Anda memerlukan SQL Server Management Studio, akses ke server yang menjalankan SQL Server.
- Instal SQL Server Management Studio.
- Instal Edisi Pengembang SQL Server 2017.
Membuat database Keuangan
Di Management Studio, buka jendela kueri dan jalankan pernyataan berikut:
CREATE DATABASE Finance ; GO
Di Object Explorer, klik Database, lalu tekan F5 untuk me-refresh daftar database.
Membuat kondisi tabel Keuangan
- Di Object Explorer, perluas Manajemen, perluas Manajemen Kebijakan, klik kanan Kondisi, lalu klik Kondisi Baru.
Dalam kotak dialog Buat Kondisi Baru, dalam kotak Nama , ketik Tabel Keuangan.
- Di daftar Faset, pilih Nama Multipihak.
- Di area Ekspresi, dalam kotak Bidang, pilih @Name; dalam kotak Operator, pilih Suka; dan dalam kotak Nilai, ketik
'fintbl%'
untuk memaksa semua nama tabel dimulai dengan fintbl huruf. - Pada halaman Deskripsi , ketik nama tabel Keuangan harus dimulai dengan fintbl, lalu klik OK untuk membuat kondisi.
Membuat kebijakan Nama keuangan
- Di Object Explorer, klik kanan Kebijakan, lalu klik Kebijakan Baru.
Dalam kotak dialog Buat Kebijakan Baru, dalam kotak Nama , ketik Nama Keuangan.
- Di daftar Periksa kondisi, pilih Tabel Keuangan. Ini ada di area Nama Multipart.
- Di area Terhadap Anda akan melihat daftar objek database yang dapat menerapkan kebijakan ini. Pilih kotak centang untuk Setiap Tabel.
- Pilih daftar Diaktifkan. (Kotak yang diaktifkan tidak berlaku untuk Kebijakan sesuai permintaan.)
- Di daftar Mode Evaluasi, pilih Aktifkan perubahan: cegah. Ini akan memberlakukan kebijakan dengan membuat pemicu database pada database Keuangan.
- Di daftar Pembatasan server, pilih Tidak Ada.
- Pada halaman Deskripsi , tambahkan deskripsi 'Nama tabel dalam database Keuangan harus berisi 'fintbl%'.'
- Kembali ke halaman Umum , dan di area Setiap Database , perluas Setiap, lalu klik Kondisi baru.
Dalam kotak dialog Buat Kondisi Baru, dalam kotak Nama , ketik Database Keuangan.
- Dalam kotak Ekspresi , selesaikan ekspresi untuk menyertakan @Name = 'Keuangan', lalu klik OK untuk menutup halaman kondisi.
Catatan
Anda mungkin harus tab keluar dari kotak Nilai untuk mengaktifkan tombol OK .
Pilih OK.
Membuat kategori kebijakan Keuangan
- Di Object Explorer, perluas Manajemen, klik kanan Manajemen Kebijakan, lalu klik Kelola Kategori.
Dalam kotak dialog Kelola Kategori Kebijakan, di bawah Nama, ketik Keuangan di kotak kosong, lalu kosongkan Mandat Langganan Database. Langganan Database Mandat akan memaksa setiap database dalam instans untuk berlangganan kebijakan yang termasuk dalam kategori kebijakan ini. Untuk pelajaran ini, hanya database Keuangan yang harus berlangganan kebijakan Nama Keuangan.
Pilih OK.
Berlangganan kategori kebijakan Keuangan
- Di Object Explorer, perluas Database, klik kanan Keuangan, arahkan ke Kebijakan, lalu klik Kategori.
- Pilih kotak centang Berlangganan untuk kategori Keuangan .
- Pilih OK.
Menguji penegakan kebijakan Nama Keuangan
Di Management Studio, buka jendela kueri. Jalankan pernyataan berikut yang mencoba membuat tabel yang melanggar kebijakan Nama Keuangan. Tabel melanggar kebijakan karena nama tabel tidak dimulai dengan huruf fintbl.
USE Finance ; GO CREATE TABLE NewTable (Col1 int) ; GO
Perhatikan bahwa kebijakan mencegah tabel dibuat dan mengembalikan pesan informasi yang memberikan nama kebijakan.
Policy 'Finance Name' has been violated by 'SQLSERVER:\SQL\SQL\SQL2017\Databases\Finance\Tables\dbo.NewTable'.
This transaction will be rolled back.
Policy condition: '@Name LIKE 'fintbl%''
Policy description: 'Tables names in the Finance database must contain 'fintbl%''.
Additional help: '' : ''
Statement: 'CREATE TABLE NewTable
(Col1 int)'.
Msg 515, Level 16, State 2, Procedure msdb.sys.sp_syspolicy_execute_policy, Line 69 [Batch Start Line 2]
Cannot insert the value NULL into column 'target_query_expression', table 'msdb.dbo.syspolicy_policy_execution_history_details_internal'; column does not allow nulls. INSERT fails.
The statement has been terminated.
Untuk memberikan nama yang valid, ubah kode sebagai berikut dan jalankan pernyataan lagi.
USE Finance ; GO CREATE TABLE fintblNewTable (Col1 int) ; GO
Kali ini, tabel dibuat.
Menerapkan kebijakan ke seluruh server
Saat ini, hanya database Keuangan yang berlangganan kategori kebijakan Keuangan. Dalam banyak kasus, lebih mudah untuk menerapkan kategori kebijakan ke seluruh server. Di Object Explorer, perluas Manajemen, klik kanan Manajemen Kebijakan, lalu klik Kelola Kategori.
Dalam kotak dialog Kelola Kategori Kebijakan, temukan kategori Keuangan, dan pilih kotak centang Mandat Langganan Database untuk kategori Keuangan.
Pilih OK. Sekarang kategori Keuangan berlaku untuk semua database, tetapi kondisi yang telah Anda buat membatasi kebijakan Nama Keuangan ke database Keuangan. Ini menunjukkan bagaimana Anda dapat menggunakan kombinasi kondisi yang kompleks untuk menargetkan kebijakan dengan cara yang akan berlaku dengan benar di banyak server.
Ringkasan
Tutorial ini telah menunjukkan kepada Anda cara membuat kondisi Manajemen Berbasis Kebijakan, kebijakan dan grup kebijakan, dan cara menerapkan filter dan memeriksa kepatuhan target Manajemen Berbasis Kebijakan.
Berikutnya
Tutorial ini selesai. Untuk kembali ke awal, kunjungi Tutorial: Mengelola Server dengan Menggunakan Manajemen Berbasis Kebijakan.
Untuk daftar tutorial, lihat Tutorial untuk SQL Server 2016.
Lihat Juga
Mengelola Server dengan Menggunakan Manajemen Berbasis Kebijakan