SQL Server Grant

SQL Server Grant
In questo articolo, capirai come utilizzare la dichiarazione di sovvenzione in SQL Server per concedere le autorizzazioni su un securabile a un principale.

SQL Server Securable and Principal

Un securabile si riferisce alle risorse Il sistema di autorizzazione del motore del database SQL Server controlla l'accesso. Un esempio sarebbe una tabella del database.

Un principale si riferisce a qualsiasi entità che richieda l'accesso a qualsiasi risorsa SQL Server. Ad esempio, un utente che richiede autorizzazioni su una tabella è un principale.

Dichiarazione di sovvenzione SQL Server

Di seguito mostra la sintassi del comando Grant in SQL Server:

Concedere le autorizzazioni
Su separabile al preside;

È necessario specificare l'autorizzazione che si desidera assegnare al capitale come elenco separato da virgola.

La parola chiave su consente di specificare la securabile su cui vengono applicate le autorizzazioni. Infine, la parola chiave consente di impostare il capitale di destinazione.

Ad esempio, la creazione di un utente utilizzando l'istruzione Crea utente non definisce le autorizzazioni per quell'utente. È quindi essenziale utilizzare la dichiarazione di sovvenzione per impostare le autorizzazioni per quell'utente.

Facciamo un esempio.

Crea un esempio di accesso

Iniziamo creando un login di esempio per scopi di illustrazione. La query è come prevista di seguito:

Crea login Linuxhint
con password = "password";

Il comando sopra dovrebbe creare un utente con il nome utente LinuxHint e la password specificata.

Crea database di esempio

Possiamo creare un database in cui l'utente risiederà una volta che avremo definito un accesso. Le domande sono come mostrate:

Drop database se esiste risolver;
creare resolver del database;
Usa il resolver;
Drop tabella se esistono voci;
Crea voci della tabella (
id int non null Identity (1,
1) Chiave primaria,
server_name varchar (50),
server_address varchar (255) non null,
compressione_method varchar (100) predefinito "nessuno",
size_on_disk float non null,
size_ float compresso,
total_records int non null,
Data init_date
);
inserire
in
Voci (server_name,
indirizzo del server,
metodo di compressione,
spazio sul disco,
size_compressed,
Total_Records,
init_date)
valori
('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');

Crea un utente per l'accesso

Una volta creato il database e la tabella, possiamo creare un utente per l'accesso LinuxHint come:

Usa il resolver
Crea Linuxhint utente
per login linuxhint;

Accedi come nuovo utente

Successivamente, accediamo come utente appena creato. Il comando è come mostrato:

setuser 'Linuxhint';

Una volta effettuato l'accesso, possiamo tentare di visualizzare le tabelle eseguendo il comando seleziona:

Seleziona * dalle voci;

L'esecuzione della query sopra dovrebbe restituire un errore:

MSG 229, Livello 14, Stato 5, linea 379
L'autorizzazione selezionata è stata negata sull'oggetto "voci", database "resolver", schema "dbo".

Questo perché l'utente LinuxHint non ha autorizzazioni nel database, comprese le autorizzazioni di selezione.

Concedere l'autorizzazione all'utente

Dobbiamo concedere le autorizzazioni di selezione per consentire all'utente di visualizzare le informazioni memorizzate nelle tabelle.

Per questo, è necessario accedere con l'account amministrativo SQL Server.

Successivamente, esegui la domanda come:

concedere selezionare le voci a Linuxhint;

Una volta eseguito, accedi come utente LinuxHint e utilizza l'istruzione SELECT.

Seleziona * dalle voci;

In questo caso, il comando restituisce la tabella poiché l'utente ha autorizzazioni selezionate

È inoltre possibile assegnare altra autorizzazione all'utente, come inserire ed eliminare come:

Grant Insert, Elimina sulle voci a Linuxhint;

In questo caso, l'utente Linuxhint dovrebbe avere le autorizzazioni selezionate, inserisci ed eliminate nella tabella delle voci.

Conclusione

In questo post, abbiamo esplorato l'uso del comando Grant in SQL Server. Il comando consente di assegnare le autorizzazioni a un determinato principale.