Bagikan melalui


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.

Membuat database Keuangan

  1. Di Management Studio, buka jendela kueri dan jalankan pernyataan berikut:

    CREATE DATABASE Finance ;  
    GO  
    
  2. Di Object Explorer, klik Database, lalu tekan F5 untuk me-refresh daftar database.

Membuat kondisi tabel Keuangan

  1. Di Object Explorer, perluas Manajemen, perluas Manajemen Kebijakan, klik kanan Kondisi, lalu klik Kondisi Baru.

Kondisi baru

  1. Dalam kotak dialog Buat Kondisi Baru, dalam kotak Nama , ketik Tabel Keuangan.

    1. Di daftar Faset, pilih Nama Multipihak.
    2. 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.
    3. Pada halaman Deskripsi , ketik nama tabel Keuangan harus dimulai dengan fintbl, lalu klik OK untuk membuat kondisi.

    Kondisi tabel keuangan

Membuat kebijakan Nama keuangan

  1. Di Object Explorer, klik kanan Kebijakan, lalu klik Kebijakan Baru.

Kebijakan baru

  1. Dalam kotak dialog Buat Kebijakan Baru, dalam kotak Nama , ketik Nama Keuangan.

    1. Di daftar Periksa kondisi, pilih Tabel Keuangan. Ini ada di area Nama Multipart.
    2. Di area Terhadap Anda akan melihat daftar objek database yang dapat menerapkan kebijakan ini. Pilih kotak centang untuk Setiap Tabel.
    3. Pilih daftar Diaktifkan. (Kotak yang diaktifkan tidak berlaku untuk Kebijakan sesuai permintaan.)
    4. Di daftar Mode Evaluasi, pilih Aktifkan perubahan: cegah. Ini akan memberlakukan kebijakan dengan membuat pemicu database pada database Keuangan.
    5. Di daftar Pembatasan server, pilih Tidak Ada.
    6. Pada halaman Deskripsi , tambahkan deskripsi 'Nama tabel dalam database Keuangan harus berisi 'fintbl%'.'
    7. Kembali ke halaman Umum , dan di area Setiap Database , perluas Setiap, lalu klik Kondisi baru.

    Membuat kebijakan Nama Keuangan baru

  2. Dalam kotak dialog Buat Kondisi Baru, dalam kotak Nama , ketik Database Keuangan.

    1. Dalam kotak Ekspresi , selesaikan ekspresi untuk menyertakan @Name = 'Keuangan', lalu klik OK untuk menutup halaman kondisi.

    Buat kondisi 'database keuangan' baru

    Catatan

    Anda mungkin harus tab keluar dari kotak Nilai untuk mengaktifkan tombol OK .

  3. Pilih OK.

Membuat kategori kebijakan Keuangan

  1. Di Object Explorer, perluas Manajemen, klik kanan Manajemen Kebijakan, lalu klik Kelola Kategori.

Mengelola kategori

  1. 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.

    Mengelola kategori kebijakan

  2. Pilih OK.

Berlangganan kategori kebijakan Keuangan

  1. Di Object Explorer, perluas Database, klik kanan Keuangan, arahkan ke Kebijakan, lalu klik Kategori.

Kategori kebijakan keuangan

  1. Pilih kotak centang Berlangganan untuk kategori Keuangan .

Berlangganan kebijakan keuangan

  1. Pilih OK.

Menguji penegakan kebijakan Nama Keuangan

  1. 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.
  1. 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

  1. 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.

  2. Dalam kotak dialog Kelola Kategori Kebijakan, temukan kategori Keuangan, dan pilih kotak centang Mandat Langganan Database untuk kategori Keuangan.

  3. 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