it-swarm.asia

Apa saja praktik terbaik untuk menggunakan skema di SQL Server?

Saya mengerti kemampuan SQL Server Schemas, tapi apa praktik terbaik? Tentu mereka memberikan lapisan keamanan lain, dan menyediakan pengelompokan logis objek database dalam database, tetapi apa yang khas di luar sana? Saya sering, dalam pengalaman saya, tidak melihat banyak skema custom made yang digunakan. Apakah ini tipikal? Apakah ini skenario yang jarang terjadi di mana skema khusus harus digunakan?

25
anon

Kami menggunakannya

  • untuk memisahkan izin per klien (mis. kami memiliki skema desktop, WebGUI dll)
  • untuk pengelompokan logis misalnya (skema Data dan Staging untuk tabel kami).

Pengamatan yang berguna dan praktis melewati kertas putih yang disebutkan oleh Marian:

  • GRANT pada skema: tidak ada lagi izin per objek. Jadi proc baru dalam skema WebGUI secara otomatis memiliki izin skema
  • Pengelompokan yang bagus di SSMS Object Explorer
  • OBJECT_SCHEMA_NAME
  • Anda dipaksa untuk memenuhi syarat nama objek (yang merupakan praktik terbaik)
17
gbn

Saya pikir jawaban dapat ditemukan dalam artikel MSDN ini: Praktik Terbaik SQL Server - Implementasi Skema Objek Database .

Kutipan: "Buku putih ini membahas peluang untuk perbaikan dalam administrasi keamanan dari basis data pengguna, dan menguraikan beberapa praktik terbaik seputar penggunaan skema untuk mengelola objek basis data dalam pengembangan dan basis data produksi. Secara khusus, ini membahas tiga skenario dunia nyata:

  • Melindungi objek database agar tidak diubah oleh pengguna tanpa sepengetahuan pemilik database
  • Mencegah objek basis data, khususnya database vendor perangkat lunak independen (ISV), dari ad hoc atau akses pengguna yang salah yang menyebabkan kinerja aplikasi yang buruk
  • Membawa kelompok obyek terkait (entitas logis) bersama dalam satu basis data fisik untuk mengurangi overhead administrasi basis data fisik ".

Saya terutama menggunakan bagian ketiga - hubungkan kelompok objek bersama-sama berdasarkan makna logis mereka - skema yang berbeda milik proyek yang berbeda di dalam database yang sama.

15
Marian