SQL Server 2005 - Nega Mostra di “sicurezza”, “Oggetti del server”, “replica” e “Management”?
-
21-09-2019 - |
Domanda
posso negare una visione specifica DB utente facendo qualcosa di simile a questo:
DENY VIEW ANY DATABASE TO Myuser
Ma, c'è un modo per negare anche la "sicurezza", "oggetti server", "replica" e "gestione" di essere visto da un utente remoto quando si accede tramite SSMS?
Grazie.
Soluzione
Queste categorie SSMS sono aggregati di varie funzioni lato server. Prendete per esempio la scheda 'Protezione', questo dimostra 'Login', 'ruoli server' e 'credenziali'. Si consideri il nodo 'Accessi':
- mostra accesso esistente, che è una vista su
sys.server_principal
s la visibilità degli oggetti in questa vista del catalogo è limitata a entità (login) su cui l'utente corrente ha proprietà o ha vista la definizione autorizzazione sopra. - Permette di aggiungere un nuovo account di accesso, il che significa
CREATE LOGIN
questo a sua volta richiedeALTER ANY LOGIN
oALTER LOGIN
permessi. - Permette di eliminare un account di accesso, il che significa
DROP LOGIN
e questo richiedeALTER ANY LOGIN
.
Ora si potrebbe in teoria nega VISTA definizione sul login, negare ALTER ANY LOGIN e negare ALTER LOGIN per l'utente (s), ma non sarà in grado di negano proprietà di un account di accesso, in modo che l'utente sarà ancora vedere qualcosa lì (proprio login). Quindi è una battaglia persa. Si potrebbe applicare un ragionamento simile a uno qualsiasi degli altri pannelli in SSMS da nascondere e si raggiunge risultati simili.
Detto questo, ci si sta avvicinando questo dal punto di vista sbagliato. Sicurezza non si basa su DENY, si basa sempre su Grant. Gli utenti non dovrebbero avere alcun diritto inutili, punto. Non si dovrebbe avere a negare esplicitamente qualsiasi cosa, a nudo alcune circostanze straordinarie.