Ho cercato di capire perché SQL Server ha lo schema db_owner
e il ruolo db_owner
? Questo è molto confuso. Ho cercato risposte e finora questo è il modo in cui la mia comprensione va:Ruoli, schemi, utenti di SQL Server
- Tutte le tabelle e gli oggetti (come i vincoli, ecc.) Appartengono a uno schema.
DBO
è lo schema predefinito. - A un utente può essere concessa l'autorizzazione per modificare ciascun oggetto o lo schema. Un'autorizzazione sullo schema estende l'autorizzazione a tutti gli oggetti all'interno di quello schema. Quindi non devi concedere l'autorizzazione per ogni singolo oggetto.
- Un ruolo raggruppa le autorizzazioni insieme per comodità.
Se ciò non è corretto fammelo sapere. Ma penso che sia andata così bene. Ora le mie domande sono:
- Che cos'è esattamente lo schema
db_owner
come visualizzato nella finestra di dialogo "Utente database" di SQL Server Management Studio? E nella stessa finestra di dialogo, si definisce "Schema predefinito" comedbo
. Perché non sono i due uguali? Se, per impostazione predefinita, SQL Server utilizzadbo
per creare tutti gli oggetti, a cosa servedb_owner
? - Perché un utente desidera possedere uno schema? Stai già assegnando permessi/ruoli. Cosa ti dà il possesso di
db_accessadmin
? - Puoi dare un esempio di quando crei oggetti sotto lo schema
db_owner
e lo schemadb_accessadmin
? In altre parole qualcuno usa legittimamente questi schemi?
concordati. Era ridicolo da parte loro creare due diversi tipi di oggetti (uno schema e un ruolo) con lo stesso nome. – LarryBud