SQL Server GEWÄHRLEISTUNG

Sql Server Gewahrleistung



In diesem Artikel erfahren Sie, wie Sie die GRANT-Anweisung in SQL Server verwenden, um einem Prinzipal Berechtigungen für ein sicherungsfähiges Objekt zu erteilen.

SQL Server Sicherbar und Prinzipal

Ein sicherungsfähiges Objekt bezieht sich auf die Ressourcen, die das Autorisierungssystem der SQL Server-Datenbank-Engine für den Zugriff steuert. Ein Beispiel wäre eine Datenbanktabelle.

Ein Prinzipal bezieht sich auf jede Entität, die Zugriff auf eine beliebige SQL Server-Ressource benötigt. Beispielsweise ist ein Benutzer, der Berechtigungen für eine Tabelle anfordert, ein Prinzipal.







SQL Server Grant-Anweisung

Das Folgende zeigt die Syntax des GRANT-Befehls in SQL Server:



GRANT-Berechtigungen
ON sicherungsfähig TO main;

Sie müssen die Berechtigung, die Sie dem Prinzipal zuweisen möchten, als kommagetrennte Liste angeben.



Mit dem ON-Schlüsselwort können Sie das sicherungsfähige Element angeben, auf das die Berechtigungen angewendet werden. Schließlich können Sie mit dem Schlüsselwort TO den Zielprinzipal festlegen.





Wenn Sie beispielsweise einen Benutzer mit der CREATE USER-Anweisung erstellen, werden die Berechtigungen für diesen Benutzer nicht definiert. Daher ist es wichtig, die GRANT-Anweisung zu verwenden, um die Berechtigungen für diesen Benutzer festzulegen.

Nehmen wir ein Beispiel.



Beispielanmeldung erstellen

Beginnen wir mit der Erstellung eines Beispiel-Logins zur Veranschaulichung. Die Abfrage lautet wie folgt:

Login-Linuxhint erstellen
mit Passwort='Passwort';

Der obige Befehl sollte einen Benutzer mit dem Benutzernamen linuxhint und dem angegebenen Passwort erstellen.

Musterdatenbank erstellen

Wir können eine Datenbank erstellen, in der sich der Benutzer befindet, sobald wir ein Login definiert haben. Die Abfragen lauten wie folgt:

Datenbank löschen, falls Resolver vorhanden;

Datenbank-Resolver erstellen;

Resolver verwenden;

Tabelle löschen, falls Einträge vorhanden sind;

Tabelleneinträge erstellen (
id int nicht null identität (1,
1) Primärschlüssel,
server_name varchar(50),
server_address varchar(255) nicht null,
compression_method varchar(100) default 'none',
size_on_disk float nicht null,
size_compressed float,
total_records int nicht null,
init_date Datum
);
Einfügung
hinein
EINTRÄGE(server_name,
Serveradresse,
Kompressionsverfahren,
size_on_disk,
Größe_komprimiert,
total_records,
init_date)
Werte
('MySQL','localhost:3306','lz77',90.66,40.04,560000,'2022-01-02'),
('Redis','localhost:6307','Snappy',3.55,998.2,100000,'2022-03-19'),
('PostgreSQL','localhost:5432','pglz',101.2,98.01,340000 ,'2022-11-11'),
('Elasticsearch','localhost:9200','lz4',333.2,300.2,1200000,'2022-10-08'),
('MongoDB','localhost:27017','Snappy',4.55,4.10,620000,'2021-12-12'),
('Apache Cassandra','localhost:9042','zstd',300.3,200.12,10000000,'2020-03-21');

Erstellen Sie einen Benutzer für die Anmeldung

Sobald wir die Datenbank und die Tabelle erstellt haben, können wir einen Benutzer für die Linuxhint-Anmeldung erstellen als:

Resolver verwenden
Benutzer linuxhint erstellen
für die Anmeldung linuxhint;

Melden Sie sich als neuer Benutzer an

Als nächstes melden wir uns als neu erstellter Benutzer an. Der Befehl ist wie gezeigt:

setuser 'linuxhint';

Nach der Anmeldung können wir versuchen, die Tabellen anzuzeigen, indem wir den Befehl select ausführen:

* aus Einträgen auswählen;

Das Ausführen der obigen Abfrage sollte einen Fehler zurückgeben:

Nachricht 229, Ebene 14, Status 5, Zeile 379
Die SELECT-Berechtigung wurde für das Objekt „Entries“, die Datenbank „Resolver“, das Schema „dbo“ verweigert.

Dies liegt daran, dass der linuxhint-Benutzer keine Berechtigungen für die Datenbank hat, einschließlich der SELECT-Berechtigungen.

Gewähren Sie dem Benutzer die Berechtigung

Wir müssen die SELECT-Berechtigungen erteilen, damit der Benutzer die in den Tabellen gespeicherten Informationen anzeigen kann.

Dazu müssen Sie sich mit dem SQL Server-Administratorkonto anmelden.

Führen Sie als Nächstes die Abfrage wie folgt aus:

Gewähren Sie linuxhint select on Einträgen;

Melden Sie sich nach der Ausführung als Linuxhint-Benutzer an und verwenden Sie die SELECT-Anweisung.

* aus Einträgen auswählen;

In diesem Fall gibt der Befehl die Tabelle zurück, da der Benutzer SELECT-Berechtigungen hat

Sie können dem Benutzer auch andere Berechtigungen zuweisen, z. B. Einfügen und Löschen als:

Gewähren Sie Einfügen, Löschen bei Einträgen in LinuxHint;

In diesem Fall sollte der linuxhint-Benutzer die Berechtigungen SELECT, INSERT und DELETE für die Eintragstabelle haben.

Fazit

In diesem Beitrag haben wir die Verwendung des GRANT-Befehls in SQL Server untersucht. Mit dem Befehl können Sie einem bestimmten Prinzipal Berechtigungen zuweisen.