SQL Server GRANT

Sql Server Grant



Σε αυτό το άρθρο, θα κατανοήσετε πώς να χρησιμοποιήσετε τη δήλωση GRANT στον SQL Server για να εκχωρήσετε δικαιώματα σε ένα ασφαλές σε έναν κύριο.

SQL Server Ασφαλής και Κύριος

Ένα ασφαλές αναφέρεται στους πόρους που ελέγχει το σύστημα εξουσιοδότησης του SQL Server Database Engine. Ένα παράδειγμα θα ήταν ένας πίνακας βάσης δεδομένων.

Ο κύριος αναφέρεται σε οποιαδήποτε οντότητα που απαιτεί πρόσβαση σε οποιονδήποτε πόρο του SQL Server. Για παράδειγμα, ένας χρήστης που ζητά δικαιώματα σε έναν πίνακα είναι κύριος.







Δήλωση επιχορήγησης διακομιστή SQL

Το παρακάτω δείχνει τη σύνταξη της εντολής GRANT στον SQL Server:



ΧΟΡΗΓΗΣΤΕ άδειες
ΕΝΕΡΓΟ ασφαλής TO main?

Πρέπει να καθορίσετε το δικαίωμα που θέλετε να εκχωρήσετε στον κύριο ως λίστα διαχωρισμένη με κόμματα.



Η λέξη-κλειδί ON σάς επιτρέπει να καθορίσετε το ασφαλές υλικό στο οποίο εφαρμόζονται τα δικαιώματα. Τέλος, η λέξη-κλειδί TO σάς δίνει τη δυνατότητα να ορίσετε τον κύριο στόχο.





Για παράδειγμα, η δημιουργία ενός χρήστη χρησιμοποιώντας τη δήλωση CREATE USER δεν καθορίζει τα δικαιώματα για αυτόν τον χρήστη. Επομένως, είναι απαραίτητο να χρησιμοποιήσετε τη δήλωση GRANT για να ορίσετε τα δικαιώματα για αυτόν τον χρήστη.

Ας πάρουμε ένα παράδειγμα.



Δημιουργία παραδείγματος σύνδεσης

Ας ξεκινήσουμε δημιουργώντας ένα δείγμα σύνδεσης για λόγους απεικόνισης. Το ερώτημα είναι όπως παρέχεται παρακάτω:

δημιουργία linuxhit σύνδεσης
με κωδικό='password';

Η παραπάνω εντολή θα πρέπει να δημιουργήσει έναν χρήστη με το όνομα χρήστη linuxhit και τον καθορισμένο κωδικό πρόσβασης.

Δημιουργία βάσης δεδομένων δείγματος

Μπορούμε να δημιουργήσουμε μια βάση δεδομένων όπου θα κατοικεί ο χρήστης αφού έχουμε ορίσει μια σύνδεση. Τα ερωτήματα είναι όπως φαίνεται:

απόθεση βάσης δεδομένων εάν υπάρχει επίλυσης?

Δημιουργία αναλυτή βάσης δεδομένων.

χρήση αναλυτή?

πτώση πίνακα εάν υπάρχουν καταχωρήσεις?

δημιουργία καταχωρήσεων πίνακα (
id int not null ταυτότητα(1,
1) πρωτεύον κλειδί,
όνομα_διακομιστή varchar(50),
server_address varchar(255) δεν είναι null,
compression_method varchar(100) προεπιλεγμένη 'κανένα',
size_on_disk float όχι null,
μέγεθος_συμπιεσμένος πλωτήρας,
total_records int όχι null,
ημερομηνία έναρξης_ημερομηνίας
)
εισάγετε
σε
ENTRIES(όνομα_διακομιστή,
server_address,
compression_method,
μέγεθος_στο δίσκο,
μέγεθος_συμπιεσμένο,
σύνολο_εγγραφών,
init_date)
αξίες
('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');

Δημιουργήστε έναν χρήστη για τη σύνδεση

Αφού δημιουργήσουμε τη βάση δεδομένων και τον πίνακα, μπορούμε να δημιουργήσουμε έναν χρήστη για τη σύνδεση linuxhin ως:

χρησιμοποιήστε τον αναλυτή
δημιουργία linuxhit χρήστη
για login linuxhit?

Συνδεθείτε ως Νέος Χρήστης

Στη συνέχεια, αφήστε μας να συνδεθούμε ως ο νέος χρήστης. Η εντολή είναι όπως φαίνεται:

setuser 'linuxint';

Μόλις συνδεθούμε, μπορούμε να προσπαθήσουμε να προβάλουμε τους πίνακες εκτελώντας την εντολή Select:

επιλέξτε * από τις καταχωρήσεις.

Η εκτέλεση του παραπάνω ερωτήματος θα πρέπει να εμφανίσει ένα σφάλμα:

Μήνυμα 229, Επίπεδο 14, Πολιτεία 5, Γραμμή 379
Η άδεια SELECT απορρίφθηκε στο αντικείμενο 'entries', database 'resolver', schema 'dbo'.

Αυτό συμβαίνει επειδή ο χρήστης linuxhin δεν έχει δικαιώματα στη βάση δεδομένων, συμπεριλαμβανομένων των δικαιωμάτων SELECT.

Παραχωρήστε Άδεια στον Χρήστη

Πρέπει να εκχωρήσουμε δικαιώματα στο SELECT για να επιτρέψουμε στον χρήστη να δει τις πληροφορίες που είναι αποθηκευμένες στους πίνακες.

Για αυτό, πρέπει να συνδεθείτε με τον λογαριασμό διαχείρισης του SQL Server.

Στη συνέχεια, εκτελέστε το ερώτημα ως:

παραχώρηση επιλογής σε καταχωρήσεις στο linuxhit.

Μόλις εκτελεστεί, συνδεθείτε ως χρήστης linuxhit και χρησιμοποιήστε τη δήλωση SELECT.

επιλέξτε * από τις καταχωρήσεις.

Σε αυτήν την περίπτωση, η εντολή επιστρέφει τον πίνακα καθώς ο χρήστης έχει δικαιώματα SELECT

Μπορείτε επίσης να εκχωρήσετε άλλα δικαιώματα στον χρήστη, όπως εισαγωγή και διαγραφή ως:

παραχώρηση ένθετου, διαγραφή στις καταχωρήσεις στο linuxhit.

Σε αυτήν την περίπτωση, ο χρήστης linuxhit θα πρέπει να έχει τα δικαιώματα SELECT, INSERT και DELETE στον πίνακα καταχωρήσεων.

συμπέρασμα

Σε αυτήν την ανάρτηση, εξερευνήσαμε τη χρήση της εντολής GRANT στον SQL Server. Η εντολή σάς επιτρέπει να εκχωρήσετε δικαιώματα σε έναν δεδομένο κύριο.