Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Concedi autorizzazioni a livello di tabella in SQL Server

Avvia SQL Server Management Studio e connettiti con le credenziali a cui è stato concesso il ruolo "sa".

Espandi Sicurezza , fai clic con il pulsante destro del mouse su Accessi e seleziona Nuovo accesso .

Inserisci un Nome di accesso descrittivo , seleziona Autenticazione SQL Server e inserisci una password sicura. Nella parte inferiore della pagina, seleziona il database a cui Chartio si connetterà come database predefinito .

Seleziona la Mappatura utente scheda, seleziona la casella accanto al database desiderato, conferma che è selezionato solo "pubblico" e fai clic su OK .

Fai clic su Nuova query e seleziona il database che stai connettendo a Chartio.

Incolla la seguente query nella finestra della query ed esegui. Sostituisci "chartio_read_only" con il nome utente effettivo dell'utente che hai creato.

SELECT 'GRANT SELECT ON "' + TABLE_SCHEMA + '"."' + TABLE_NAME + '" TO "chartio_read_only"' FROM information_schema.tables

Seleziona e copia i risultati della query nella finestra della query.

Rimuovi tutte le tabelle o le viste a cui non desideri che l'utente "chartio_read_only" abbia accesso. In questo esempio ho rimosso le tabelle Invoice e InvoiceLine perché contengono informazioni riservate.

GRANT SELECT ON "dbo"."Customer" TO "chartio_read_only"
GRANT SELECT ON "dbo"."Employee" TO "chartio_read_only"
GRANT SELECT ON "dbo"."Genre" TO "chartio_read_only"
GRANT SELECT ON "dbo"."MediaType" TO "chartio_read_only"
GRANT SELECT ON "dbo"."Playlist" TO "chartio_read_only"
GRANT SELECT ON "dbo"."PlaylistTrack" TO "chartio_read_only"
GRANT SELECT ON "dbo"."Track" TO "chartio_read_only"
GRANT SELECT ON "dbo"."Album" TO "chartio_read_only"
GRANT SELECT ON "dbo"."Artist" TO "chartio_read_only"

Esegui la query.

Successivamente dovrai concedere la definizione della vista sullo schema dbo. Copia la query seguente ed eseguila in SQL Server. Sostituisci il nome utente con il nome utente che hai creato in precedenza.

GRANT VIEW DEFINITION ON SCHEMA :: dbo TO chartio_read_only

Ora puoi utilizzare queste credenziali per connettere Chartio al tuo database con autorizzazioni di sola lettura solo sulle tabelle che hai specificato.