Usando uno script SQL per elencare tutte le autorizzazioni, sono andato e ho creato utenti per ogni caso.
EXECUTE AS USER = 'test_user'
SELECT
permission_name
FROM fn_my_permissions(null, 'DATABASE')
ORDER BY subentity_name, permission_name
REVERT;
Ho quindi confrontato i risultati e sono arrivato al seguente elenco, con la documentazione principalmente da msdn (tutte le citazioni non specificatamente citate provengono dal collegamento msdn).
Di seguito è riportata una parte della documentazione che ho usato per informare le persone che avrebbero perso i permessi del dbo che cosa stavano perdendo.
ALTER
Conferisce la possibilità di modificare le proprietà, ad eccezione della proprietà, di un determinato elemento protetto. Se concesso su un ambito, ALTER offre anche la possibilità di alterare, creare o eliminare qualsiasi elemento sicuro contenuto in tale ambito. Ad esempio, l'autorizzazione ALTER su uno schema include la possibilità di creare, modificare e rilasciare oggetti dallo schema.
MODIFICA QUALSIASI RUOLO DELL'APPLICAZIONE
ALTER QUALSIASI AUDIT DI DATABASE
ALTER QUALSIASI RUOLO
ALTER QUALSIASI UTENTE
Conferisce la possibilità di CREARE, ALTER o DROP singole istanze di Database Securable. Ad esempio, ALTER ANY SCHEMA conferisce la possibilità di creare, modificare o eliminare qualsiasi schema nel database.
I ruoli dell'applicazione sono entità del database che consentono l'esecuzione di un'applicazione con autorizzazioni proprie simili a quelle dell'utente.
Il controllo di un'istanza di SQL Server o di un database SQL Server implica il tracciamento e la registrazione degli eventi che si verificano sul sistema. L'oggetto Specifica controllo a livello di database appartiene a un controllo. È possibile creare una specifica di controllo del database per database di SQL Server per controllo.
I ruoli del database vengono utilizzati per gestire facilmente le autorizzazioni nei database, SQL Server fornisce diversi ruoli che sono entità di sicurezza che raggruppano altre entità. Sono come gruppi nel sistema operativo Microsoft Windows. I ruoli a livello di database hanno ampie dimensioni di database nell'ambito delle autorizzazioni.
AUTENTICATO
Trovato in msdn.
Le autorizzazioni AUTHENTICATE & AUTHENTICATE SERVER vengono utilizzate solo quando si utilizza EXECUTE AS in scenari cross-database e di accesso al server (rispettivamente).
DATABASE
DI BACKUP REGISTRO DI BACKUP
CONNECT REPLICATION
Utilizzato per le autorizzazioni di replica del database .
CONTROLLO
Conferisce capacità simili alla proprietà sul beneficiario. L'affiliato ha effettivamente tutte le autorizzazioni definite sul sicuro. Un'entità a cui è stato concesso CONTROL può anche concedere autorizzazioni per la sicurezza.
CREA RUOLO
Conferisce all'utente autorizzato la possibilità di creare un database sicuro.
SHOWPLAN
Le autorizzazioni Showplan vengono utilizzate per varie opzioni dell'istruzione SET Showplan quando vengono utilizzate con batch Transact-SQL .
ISCRIVITI ALLE NOTIFICHE
Documentazione sulle notifiche di query.
Basate sull'infrastruttura di Service Broker, le notifiche delle query consentono alle applicazioni di essere avvisate quando i dati sono cambiati. Questa funzione è particolarmente utile per le applicazioni che forniscono una cache di informazioni da un database, come un'applicazione Web, e devono essere informate quando i dati di origine vengono modificati.
ASSUMERE LA PROPRIETÀ
Consente al beneficiario di assumere la proprietà del titolo sul quale è concesso.
VISUALIZZA STATO DATABASE
Utilizzato per visualizzare le viste e le funzioni di gestione dinamica (Transact-SQL) .
VISUALIZZA DEFINIZIONE
Documentazione sulle autorizzazioni di definizione della vista.
L'autorizzazione VIEW DEFINITION consente a un utente di visualizzare i metadati del dispositivo di sicurezza su cui viene concessa l'autorizzazione. Tuttavia, l'autorizzazione VIEW DEFINITION non conferisce l'accesso al sicuro stesso. Ad esempio, un utente a cui è concessa solo l'autorizzazione VISUALIZZA DEFINIZIONE su una tabella può visualizzare i metadati relativi alla tabella nella vista del catalogo sys.objects. Tuttavia, senza autorizzazioni aggiuntive come SELECT o CONTROL, l'utente non può leggere i dati dalla tabella.