Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Gewähren Sie in SQL Server Berechtigungen auf Tabellenebene

Starten Sie SQL Server Management Studio und stellen Sie eine Verbindung mit Anmeldeinformationen her, denen die Rolle „sa“ zugewiesen wurde.

Erweitern Sie Sicherheit , klicken Sie mit der rechten Maustaste auf Anmeldungen und wählen Sie Neues Login .

Geben Sie einen aussagekräftigen Anmeldenamen ein , wählen Sie SQL Server-Authentifizierung aus , und geben Sie ein sicheres Passwort ein. Wählen Sie unten auf der Seite die Datenbank aus, mit der sich Chartio als Standarddatenbank verbindet .

Wählen Sie die Benutzerzuordnung aus Aktivieren Sie das Kontrollkästchen neben der gewünschten Datenbank, bestätigen Sie, dass nur „öffentlich“ ausgewählt ist, und klicken Sie auf OK .

Klicken Sie auf Neue Abfrage Schaltfläche und wählen Sie die Datenbank aus, die Sie mit Chartio verbinden.

Fügen Sie die folgende Abfrage in das Abfragefenster ein und führen Sie sie aus. Ersetzen Sie „chartio_read_only“ durch den tatsächlichen Benutzernamen des von Ihnen erstellten Benutzers.

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

Wählen Sie die Abfrageergebnisse aus und kopieren Sie sie in das Abfragefenster.

Entfernen Sie alle Tabellen oder Ansichten, auf die der Benutzer „chartio_read_only“ keinen Zugriff haben soll. In diesem Beispiel habe ich die Tabellen Invoice und InvoiceLine entfernt, da sie vertrauliche Informationen enthalten.

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"

Führen Sie die Abfrage aus.

Als Nächstes müssen Sie die Ansichtsdefinition für das dbo-Schema erteilen. Kopieren Sie die folgende Abfrage und führen Sie sie in SQL Server aus. Ersetzen Sie den Benutzernamen durch den Benutzernamen, den Sie zuvor erstellt haben.

GRANT VIEW DEFINITION ON SCHEMA :: dbo TO chartio_read_only

Sie können diese Anmeldeinformationen jetzt verwenden, um Chartio nur mit Leseberechtigungen für die von Ihnen angegebenen Tabellen mit Ihrer Datenbank zu verbinden.