SQL Server GRANT

Sql Server Grant



En aquest article, entendreu com utilitzar la instrucció GRANT a SQL Server per concedir permisos sobre un objecte de seguretat a un principal.

SQL Server Securable i Principal

Un assegurable fa referència als recursos que controla l'accés el sistema d'autorització del motor de base de dades SQL Server. Un exemple seria una taula de base de dades.

Un principal fa referència a qualsevol entitat que requereixi accés a qualsevol recurs d'SQL Server. Per exemple, un usuari que sol·licita permisos en una taula és un principal.







Declaració de subvenció de SQL Server

A continuació es mostra la sintaxi de l'ordre GRANT a SQL Server:



GRANT permisos
ON securable TO principal;

Heu d'especificar el permís que voleu assignar al director com a llista separada per comes.



La paraula clau ON us permet especificar l'element de seguretat sobre el qual s'apliquen els permisos. Finalment, la paraula clau TO us permet establir el principal objectiu.





Per exemple, la creació d'un usuari mitjançant la instrucció CREATE USER no defineix els permisos per a aquest usuari. Per tant, és essencial utilitzar la instrucció GRANT per establir els permisos per a aquest usuari.

Prenguem un exemple.



Crea un exemple d'inici de sessió

Comencem per crear una mostra d'inici de sessió amb finalitats il·lustratives. La consulta és la següent:

crear un inici de sessió linuxhint
with password='contrasenya';

L'ordre anterior hauria de crear un usuari amb el nom d'usuari linuxhint i la contrasenya especificada.

Crea una base de dades de mostra

Podem crear una base de dades on residirà l'usuari un cop hàgim definit un inici de sessió. Les consultes són les que es mostren:

elimina la base de dades si existeix resolutor;

crear una base de dades de resolució;

utilitzar el resolutor;

deixar anar la taula si hi ha entrades;

crear entrades de taula (
id int no identitat nul·la (1,
1) clau primària,
nom_servidor varchar(50),
adreça_server varchar(255) no nul,
compression_method varchar(100) per defecte 'cap',
size_on_disk float no nul,
size_compressed float,
total_records int no nul,
data d'inici_data
);
inserir
a
ENTRADES(nom_servidor,
adreça del servidor,
mètode_compressió,
mida_al_disc,
mida_comprimida,
total_records,
data_inici)
valors
('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');

Creeu un usuari per a l'inici de sessió

Un cop hem creat la base de dades i la taula, podem crear un usuari per a l'inici de sessió linuxhint com:

utilitzar el resolutor
crear l'usuari linuxhint
per iniciar sessió linuxhint;

Inicieu sessió com a nou usuari

A continuació, iniciem la sessió com a usuari nou creat. L'ordre és com es mostra:

setuser 'linuxhint';

Un cop iniciat la sessió, podem intentar veure les taules executant l'ordre select:

seleccioneu * de les entrades;

L'execució de la consulta anterior hauria de retornar un error:

Msg 229, nivell 14, estat 5, línia 379
El permís SELECT es va denegar a l'objecte 'entrades', 'resolvedor' de la base de dades, esquema 'dbo'.

Això es deu al fet que l'usuari linuxhint no té cap permís a la base de dades, inclosos els permisos SELECT.

Concedir permís a l'usuari

Hem de concedir els permisos SELECT per permetre a l'usuari veure la informació emmagatzemada a les taules.

Per això, heu d'iniciar sessió amb el compte d'administrador de SQL Server.

A continuació, executeu la consulta com:

concedir la selecció de les entrades a linuxhint;

Un cop executat, inicieu sessió com a usuari de linuxhint i utilitzeu la instrucció SELECT.

seleccioneu * de les entrades;

En aquest cas, l'ordre retorna la taula ja que l'usuari té permisos SELECT

També podeu assignar altres permisos a l'usuari, com ara inserir i suprimir com a:

concedir inserció, eliminar les entrades a linuxhint;

en aquest cas, l'usuari linuxhint hauria de tenir els permisos SELECT, INSERT i DELETE a la taula d'entrades.

Conclusió

En aquesta publicació, hem explorat l'ús de l'ordre GRANT a SQL Server. L'ordre us permet assignar permisos a un principal determinat.