Quali sono alcune best practice per l'utilizzo di schemi in SQL Server?


24

Comprendo le capacità degli schemi di SQL Server, ma quali sono le migliori pratiche? Sicuro che offrono un altro livello di sicurezza e forniscono un raggruppamento logico di oggetti di database all'interno del database, ma cosa è tipico là fuori? Spesso, nella mia esperienza, non vedo molti schemi personalizzati utilizzati. È tipico? È lo scenario meno frequente in cui si dovrebbero usare schemi personalizzati?

Risposte:


16

Li usiamo

  • per separare le autorizzazioni per client (ad es. abbiamo schemi desktop, WebGUI ecc.)
  • per raggruppamenti logici, ad es. (schemi di dati e di gestione temporanea per le nostre tabelle).

Osservazioni utili e pratiche oltre il white paper menzionato da Marian:

  • CONCESSIONE sullo schema: non più autorizzazioni per oggetto. Quindi un nuovo proc nello schema WebGUI ha automaticamente le autorizzazioni dello schema
  • Simpatici raggruppamenti in Esplora oggetti SSMS
  • OBJECT_SCHEMA_NAME
  • Sei costretto a qualificare i nomi degli oggetti (che è la migliore pratica)

15

Penso che sia possibile trovare una risposta in questo articolo MSDN: Best practice per SQL Server - Implementazione di schemi di oggetti di database .

Citazione: "Questo white paper illustra le opportunità di miglioramento dell'amministrazione della sicurezza di un database utente e delinea alcune best practice sull'utilizzo di schemi per gestire oggetti di database in database di sviluppo e produzione. In particolare, affronta tre scenari reali:

  • Protezione degli oggetti del database da eventuali modifiche da parte degli utenti all'insaputa del proprietario del database
  • Prevenire gli oggetti di base del database, in particolare i database ISV (Independent Software Vendor), dall'accesso ad hoc o errato dell'utente che porta a scarse prestazioni dell'applicazione
  • Riunire gruppi correlati di oggetti (entità logiche) all'interno di un database fisico per ridurre le spese amministrative amministrative del database ".

Uso in particolare la terza parte - relaziona insieme un gruppo di oggetti in base al loro significato logico - schemi diversi appartenenti a progetti diversi all'interno dello stesso database.


-2

Potresti voler consultare alcuni dei testi fondamentali su questo argomento per rispondere ad alcune delle tue domande. I documenti sul modello di database relazionale di EF Codd e CJ Date affrontano molte domande comuni relative alla progettazione, alle prestazioni, alla sicurezza, alla progettazione ottimale dello schema ecc. In definitiva, in quanto padri del moderno modello di database relazionale, le loro opere rappresentano la base di DB2, ORACLE, SQL Server (Microsoft e Sybase), Ingres, MySQL e tutti gli altri set di soluzioni di database relazionali disponibili.


1
Questo sembra parlare della progettazione del database in senso generale e non degli schemi di SQL Server.
AakashM,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.