Differenza tra schemi di proprietà e appartenenza ai ruoli per Microsoft SQL Server


24

Ci sono differenze tra Owned Schemase Role Members?

Da quanto ho capito, Role Memberssono obbligatori: l'utente deve avere almeno una delle caselle di Role Memberscontrollo selezionate.

Tuttavia, Owned Schemasnon è obbligatorio. Mi viene davvero da chiedersi perché ci sia bisogno di avere Owned Schemaslì dentro.

inserisci qui la descrizione dell'immagine

Risposte:


17

Mele e arance. I ruoli sono ruoli e gli schemi sono schemi. Il fatto che esista un ruolo chiamato db_accessadmine anche uno schema chiamato db_accessadminnon significa che un ruolo sia uno schema né che uno schema sia un ruolo. I ruoli sono contenitori di appartenenza alla sicurezza, un'entità è membro di un ruolo. Gli schemi contengono oggetti associati a schemi di database e sono di proprietà di un'entità. Quando si crea un nuovo utente, è possibile scegliere il suo schema predefinito, aggiungerlo a determinati ruoli e concedergli la proprietà degli schemi. Sebbene le azioni siano separate, i progettisti di questa finestra di dialogo ritengono che siano in qualche modo correlati da meritare tutto quel patrimonio immobiliare UX (che è discutibile, ma un argomento completamente diverso).


Leggendo tra le righe , immagino che il punto di avere questi schemi sia che, ad esempio, è possibile far sì che determinati oggetti siano scrivibili dagli utenti con il db_datareaderruolo e lo schema, che non sono necessariamente leggibili da nessun altro. Funzionerebbe bene per un'app che necessita solo dell'accesso in lettura dbo, ma deve installare alcuni processi o trigger memorizzati. Ovviamente, ciò richiede comunque di aggiungere manualmente ciascun utente al ruolo e allo schema.
jpaugh

-1

Bene .. questo è un thread molto vecchio, ma ancora 2 centesimi da parte mia per coloro che visiteranno ancora qui. Questo link ha la migliore risposta per la query sopra.

https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/ownership-and-user-schema-separation-in-sql-server

Un estratto dallo stesso:

SQL Server viene fornito con dieci schemi predefiniti che hanno gli stessi nomi degli utenti e dei ruoli del database integrati. Esistono principalmente per compatibilità con le versioni precedenti. È possibile eliminare gli schemi con gli stessi nomi dei ruoli fissi del database se non sono necessari.

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.