Domanda

Sto cercando il modo migliore per disabilitare l'accesso al sys.tables / Information Schema Per un utente / gruppo in SQL Server.

ho trovato Questo thread dal 2008

Mostra un modo su come negare l'accesso [sys].[something] così:

 DENY SELECT ON [sys].[columns] TO DenySystemTableSelectRole
 GO
 DENY SELECT ON [sys].[tables] TO DenySystemTableSelectRole
 GO
 DENY SELECT ON [sys].[syscolumns] TO DenySystemTableSelectRole
 GO
 DENY SELECT ON [sys].[sysobjects] TO DenySystemTableSelectRole
 GO

Ma in nessun modo come disabilitare l'accesso sul Information Schema:

DENY SELECT ON INFORMATION_SCHEMA.TABLES To DenySystemTableSelectRole

Questo sembra non funzionare.

Come posso disabilitare l'accesso a Information_Schema?

E esiste un modo più semplice Disabilita l'accesso a tutti sys / information_schema?

Aggiornare:In realtà non posso eseguire entrambe le seguenti affermazioni:

DENY SELECT ON [sys] TO reducedDBO
GO
DENY SELECT ON INFORMATION_SCHEMA To reducedDBO
GO

Ho provato a eseguirli sul DB specifico in cui esiste l'utente e ho anche provato il "Master".

Posso ancora correre:

 SELECT * from
 INFORMATION_SCHEMA.TABLES 

-> restituisce ancora i risultati

 SELECT * from
 sys.TABLES 

-> nessun risultato più

Compreso SCHEMA:: Nella query ha reso possibile creare gli utente

DENY SELECT ON SCHEMA::[sys] TO reducedDBO
GO
DENY SELECT ON SCHEMA::INFORMATION_SCHEMA To reducedDBO
GO

Ma ora posso ancora selezionare tutte le informazioni dal DB.

Ho dato un'occhiata al tab "Iardabili" nel Window di proprietà degli utenti in Management Studio 2008, sembra così:

Voce che blocca la selezione di sys.Tables

Schema: sys, nome: tabelle, tipo: visualizza

Autorizzazioni per sys.Tables: autorizzazione: selezione, concedente: dbo, negazione di negazione

Voce che non blocca alcuna selezione

Schema :, Nome: Information_Schema, Tipo: Schema

Autorizzazioni per informazioni_schema: autorizzazione: selezione, concedente: dbo, negazione non è controllata (ho provato a controllarlo, ma nessuna possibilità ..)

Autorizzazione: selezionare, concedente: information_schema, negazione di negazione


Ho provato a impostare le autorizzazioni sulla GUI, ma poi ottengo lo stesso errore che le autorizzazioni di impostazione sarebbero state possibili solo sul DB Master. Ma non ho l'utente/accesso aggiunto alla sicurezza DBS Master.

Soluzione:

L'unico modo in cui potrei fare il deny lavorare per il information_schema era a Aggiungi l'utente al Master-DB e eseguire il deny select sul maestro:

DENY SELECT ON [sys].[tables] TO reducedDBO
GO
DENY SELECT ON INFORMATION_SCHEMA.TABLES To reducedDBO
GO

E come in questo codice, può essere eseguito solo per singole tabelle.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top