Apa beberapa praktik terbaik untuk menggunakan skema di SQL Server?

24

Saya memahami kemampuan SQL Server Schemas, tetapi apa praktik terbaiknya? 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?

Jon dari Semua Perdagangan
sumber

Jawaban:

16

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)
gbn
sumber
15

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

Marian
sumber
-2

Anda mungkin ingin pergi ke beberapa teks dasar tentang ini untuk menjawab beberapa pertanyaan Anda. Dokumen pada model basis data relasional dari EF Codd dan CJ Date menjawab banyak pertanyaan umum terkait desain, kinerja, keamanan, desain skema optimal, dll. Pada akhirnya, sebagai bapak model database relasional modern, karya-karya mereka berdiri sebagai fondasi untuk DB2, ORACLE, SQL Server (Microsoft dan Sybase), Ingres, MySQL, dan setiap solusi basis data relasional lainnya tersedia.

James Pulley
sumber
1
Ini tampaknya berbicara tentang desain database dalam pengertian umum, dan tidak sama sekali tentang SQL Server Schemas.
AakashM